CVE-2023-48223
fast-jwt Confusione dell'algoritmo JWT
- Pubblicato
- 20 nov 2023
- Aggiornato
- 2 ago 2024
- Assegnazione CNA
- GitHub_M
- Evidenza osservata
- 8 ago 2026
CVSS primario
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:NBasso · prossimi 30 giorni
- Percentile
- 51,5%
- Data del modello
- 17 ott 2026
L'EPSS è una stima statistica, non una certezza o una misura di impatto. Combinalo con CVSS, stato KEV, esposizione e ambiente.
Riepilogo
fast-jwt fornisce un'implementazione veloce di JSON Web Token (JWT). Prima della versione 3.3.2, la libreria fast-jwt non previene correttamente la confusione di algoritmo JWT per tutti i tipi di chiave pubblica. Il 'publicKeyPemMatcher' in 'fast-jwt/src/crypto.js' non corrisponde correttamente a tutti i formati PEM comuni per le chiavi pubbliche. Per sfruttare questa vulnerabilità, un attaccante deve creare un token JWT dannoso contenente l'algoritmo HS256, firmato con la chiave pubblica RSA dell'applicazione vittima. Questo attacco funzionerà solo se l'applicazione vittima utilizza una chiave pubblica contenente l'intestazione `BEGIN RSA PUBLIC KEY`. Le applicazioni che utilizzano l'algoritmo RS256, una chiave pubblica con un'intestazione `BEGIN RSA PUBLIC KEY` e che chiamano la funzione verify senza fornire esplicitamente un algoritmo, sono vulnerabili a questo attacco di confusione di algoritmo che consente agli attaccanti di firmare payload arbitrari che verranno accettati dal verificatore. La versione 3.3.2 contiene una patch per questo problema. Come workaround, modificare la riga 29 di `blob/master/src/crypto.js` per includere un'espressione regolare.
Fonti
Prova di concetto che dimostra la confusione dell'algoritmo JWT nella libreria fast-jwt. Include server vulnerabile, script per il forging di token e fix di verifica per l'educazione sulla sicurezza.
Utilizzo 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.