KamoCRM

MCP configs need MANAGE AI SETTINGS, provider/MCP urls can't access the cluster, contingent polices are implemented

FixAIService
Expediere
23 septembrie 2026 la 01:50 UTC
Autor
Kamo
Comite
9060c7c

Trei descoperiri independente, stabilite împreună, deoarece primele două fișiere de partajare și o clasă. 1. AiMcpController a avut zero controale de dreapta pe creare/actualizare/delete/test organizația ar putea planta un server MCP config, și McpStdioTransport McpStdio ruleaza config.comanda cu config.envVars ca un proces real OS (nou processBuilder(...).start()); la poarta de start și din nou la fiecare 30 de ani verificarea sănătății. Aceasta este RCE neautorizat împotriva McP-gateway-service. Fiecare handler mutant/test necesită acum MANAGE AI SETTINGS, potrivire AiProviderController, și STDIO este refuzat pur și simplu pentru un config creat de organizație a chiriașul poate configura numai SSE/HTTP. (ai mp server configs are 0 rânduri; nu este necesară migrarea.) 2. SSRF: *************** a trimis cheia furnizorului decriptat a unei organizații indiferent de gazda a fost în bazaurl și a reflectat răspunsul, și OpenAiCompatibilAdaptor (care serveşte 8 din cele 12 tipuri de furnizori) nu a avut nici o regulă gazdă pe oricare dintre cele trei apeluri outbound inclusiv calea reală de chat fiecare mesaj ia, nu doar butonul de testare manual. Adăugat OutboundUrlGuard, construit pe baza publicaţiei existente a lui kamo-shared-libraryHostGuard (utilizată deja de SecurityService's SafeSiteFetcher and SafeImageFetcher for the same class of problem): rezolvari gazda şi refuză adresele *************** şi cluster-only names (*.svc, *.cluster.local, dotless), checked at salve time in AiProviderController și AiMcpController și din nou imediat înainte de fiecare apel în OpenAiCompatibilAdaptator, deoarece răspunsul DNS al unui nume de gazdă la salvarea timpului nu este răspunsul său pentru totdeauna. Refuzul este un simplu 400 cu propriul nostru mesaj a încercat vreodată la o destinație refuzată. 3. ***************** userId) interogat înregistrările de utilizare și apoi, Necondiţionat, returnat adevărat ă două site-uri reale de apel (ChatOrchestrationService's streaming and Sync chat chat ways) acum rezolva fiecare rol pe care membrul îl deține și aplică politica cartografiată a fiecărui rol: un rol fără granturi de politică cartografiate nicio restricție proprie, dar nu poate anula o politică restrictivă atribuită printr-o De asemenea, un membru are un rol diferit. Supraîncărcarea irosită cu 2 argi a dispărut. Teste: AiMcpControllerAuthzTest (drepturi + refuzul STDIO + validarea url), OutboundUrlGuardTest; AiProvider KeyExposureTest (2 noi cazuri SSRF), ************* Acces Policy MultiRoleTest. Fiecare caz a fost verificat roșu împotriva codului pre-fix înainte de această comitere (Drepturile deschise eșuate, încrederea corporală, garda de gardă nu este disponibilă și întotdeauna controale ale cotelor reale fiecare reintrodus la nivel local; unul la un moment dat, și restaurat după confirmarea încercării de potrivire a eșuat). McP-gateway-service devine un angajament de potrivire: un permis independent STDIO (apărare în profunzime, în în cazul în care acest control este ocolit vreodată) și propria verificare înainte de conectare pe un url SSE/HTTP.

Toate modificările

Ca ceea ce vezi de transport maritim?

Toate acestea ajung în spațiul de lucru pe cont propriu. Începeți cu planul gratuit și citiți această pagină din nou într-o lună.

Pornește gratuit pentru totdeaunaVezi prețurile