KamoCRM

Il percorso di sessione cerca il proprio org del chiamante, mai il corpo della richiesta

FixRAGService
Spegnimento
23 settembre 2026 alle ore 01:16 UTC
Autore
Kamo
Impegno
6488bd4

RagSearchController leggere orgId/memberId/memberType dal corpo JSON su ogni percorso, comprese le richieste autenticate da una *** sessione piuttosto che X-Internal-Auth. Un membro firmato con solo VIEW KB ARTICLES potrebbe mettere un diverso org's id, o un membro diverso id, nel corpo e cercare che la base di conoscenza di Org o le note private di quel membro direttamente attraverso Qdrant filtri — la sessione ha dimostrato chi chiedeva, ma non ha mai ostacolato ciò potrebbe chiedere. /reindex/{orgId} e /status/{orgId} avevano la stessa forma livello su: il percorso orgId è stato fidato una volta che il chiamante ha tenuto MANAGE KB SETTINGS in *some* org, senza controllare che fosse loro. Rendendolo peggiore, SessionHelper.hasRight ha reso vero per una sessione con una lista dei diritti vuoti e di nuovo per uno senza campo di diritti affatto, quindi il diritto i controlli di guardia di tutti e tre i punti finali sono stati sciolti dallo stesso campo mancante. La regola ora: sul percorso di sessione, org/member/memberType sono derivati dal **************************** aggiunto a SessionHelper) e reindex/status richiedono inoltre il percorso orgId per uguale la sessione org. hasRight fallisce chiuso, corrispondente a KBService. Il percorso X-Internal-Auth è — AIService non ha sessione propria e deve ancora nominare chi è cercando nel corpo. Inoltre ha cambiato il confronto segreto X-Internal-Auth da String.equals a MessageDigest.isEqual così una differenza di tempismo non può trapelare il byte segreto alla volta. Test: SessionHelperRights Perni di prova i casi chiusi (mirrors KBService's suite). RagSearchControllerAuthzTest pins il bug di fiducia del corpo e il reindex/status org check, e dimostra separatamente il percorso interno-auth ancora si fida del corpo (l'unico modo per chiamare questo). Ognuno è stato verificato rosso contro il codice prefisso prima di questo commit.

Tutte le modifiche

Come quello che vedi la spedizione?

Tutto questo arriva nel vostro spazio di lavoro da solo. Iniziare sul piano gratuito e leggere di nuovo questa pagina in un mese.

Inizia gratis per sempreVisualizza il prezzo