CVE-2026-33186
gRPC-Go presenta un bypass dell'autorizzazione tramite barra iniziale mancante in :path
- Pubblicato
- 20 mar 2026
- Aggiornato
- 18 set 2026
- Assegnazione CNA
- GitHub_M
- Evidenza osservata
- 17 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NBasso · prossimi 30 giorni
- Percentile
- 73,7%
- Data del modello
- 21 set 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
# gRPC-Go gRPC-Go è l'implementazione in linguaggio Go di gRPC. Le versioni precedenti alla 1.79.3 presentano un bypass dell'autorizzazione derivante da una validazione impropria dell'input dello pseudo-header HTTP/2 `:path`. Il server gRPC-Go era troppo permissivo nella sua logica di routing, accettando richieste in cui `:path` ometteva la barra iniziale obbligatoria (ad esempio, `Service/Method` invece di `/Service/Method`). Sebbene il server instradasse correttamente queste richieste all'handler giusto, gli interceptor di autorizzazione (incluso il pacchetto ufficiale `grpc/authz`) valutavano la stringa del percorso grezza e non canonica. Di conseguenza, le regole "deny" definite utilizzando percorsi canonici (che iniziano con `/`) non riuscivano a corrispondere alla richiesta in arrivo, consentendole di bypassare la policy se era presente una regola "allow" di fallback. Questo riguarda i server gRPC-Go che utilizzano interceptor di autorizzazione basati sul percorso, come l'implementazione RBAC ufficiale in `google.golang.org/grpc/authz` o interceptor personalizzati che si affidano a `info.FullMethod` o `grpc.Method(ctx)`; E che hanno una policy di sicurezza contenente specifiche regole "deny" per percorsi canonici ma che consente altre richieste per impostazione predefinita (una regola "allow" di fallback). La vulnerabilità è sfruttabile da un attaccante che può inviare frame HTTP/2 grezzi con header `:path` malformati direttamente al server gRPC. La correzione nella versione 1.79.3 garantisce che qualsiasi richiesta con un `:path` che non inizia con una barra iniziale venga immediatamente rifiutata con un errore `codes.Unimplemented`, impedendole di raggiungere interceptor di autorizzazione o handler con una stringa di percorso non canonica. Sebbene l'aggiornamento sia il percorso più sicuro e raccomandato, gli utenti possono mitigare la vulnerabilità utilizzando uno dei seguenti metodi: Utilizzare un interceptor di validazione (mitigazione raccomandata); normalizzazione a livello di infrastruttura; e/o rafforzamento della policy.
Fonti
1Utilizzo responsabile
Utilizza le informazioni sulla vulnerabilità solo sui sistemi che possiedi o che sei autorizzato a testare. Kitploit si collega ai metadati della ricerca pubblica e non memorizza codici exploit o payload dannosi.