[BUG] /user/find/full 越权漏洞
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 65/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- go
- Ambito
- api, authorization, security
Direzione di ricerca
Inizia in internal/rpc/chat/user.go, all’interno di chatSvr.FindUserFullInfo, quindi leggi la gestione circostante di mctx.Check e del tipo di utente. Riproduci la richiesta con il token di un utente normale e l’ID di un altro utente, quindi verifica che gli utenti ordinari non possano recuperare i profili completi di altri utenti, mentre la ricerca consentita prevista continui a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
OpenIM Server Version
1.8.4
Operating System and CPU Architecture
Linux (AMD)
Deployment Method
Docker Deployment
Bug Description and Steps to Reproduce
使用当前用户xxx 的OpenIM 业务token,可直接查询另一个真实用户lll 的资料。响应返回phoneNumber、nickname、gender、birth、消息设置等字段,说明接口按传入userIDs 返回用户资料,未限制为当前用户或已授权关系范围
Screenshots Link
internal/rpc/chat/user.go 中的 FindUserFullInfo 函数,增加权限校验:
func (o *chatSvr) FindUserFullInfo(ctx context.Context, req *chat.FindUserFullInfoReq) (*chat.FindUserFullInfoResp, error) {
opUserID, userType, err := mctx.Check(ctx)
if err != nil {
return nil, err
}
if len(req.UserIDs) == 0 {
return nil, errs.ErrArgs.WrapMsg("UserIDs is empty")
}
// 普通用户只能查询自己的信息
if userType == constant.NormalUser {
for _, userID := range req.UserIDs {
if userID != opUserID {
return nil, errs.ErrNoPermission.WrapMsg("normal user can only query own info")
}
}
}
attributes, err := o.Database.FindAttribute(ctx, req.UserIDs)
if err != nil {
return nil, err
}
return &chat.FindUserFullInfoResp{Users: DbToPbUserFullInfos(attributes)}, nil
}
- Lingua principale
- Go
- Stelle
- 160
- Fork
- 226
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di openimsdk/chat
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
-
[BUG] chat release-v1.8.4Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
[FEATURE REQUEST] Support KubernetesForse già presa @icey-yu l’ha presa 494 giorni fa. Apertaenhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di openimsdk/chat
Issue simili
-
Handler accepts zero/negative NNCP_MAX_RETRIES and NNCP backoff values, stalling policies or hot-loopingForse già presa @NopeCharon l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nmstate/kubernetes-nmstate#1604 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
bug raised-by:desk
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
medici-finance/assay#4723 ·
I maintainer di solito rispondono entro 1 giorno
-
[doc-healer] DDUw improvement: retry integrity-filtered issue reads with direct single-item lookupsApertaautomation documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
flannel-io/flannel#2608 ·
I maintainer di solito rispondono entro 2 giorni