CVE-2026-62374 in sd-jwt-js
Riassunto
di VulDB • 29/10/2026
SD JWT JS è un'implementazione JavaScript della specifica Selective Disclosure JWT (SD-JWT). Nelle versioni 0.19.0 e precedenti, il pacchetto `@sd-jwt/decode`, utilizzato anche da `@sd-jwt/core`, ignora silenziosamente una Disclosure manomessa il cui digest non corrisponde più all'array `_sd` firmato dall'emittente (Issuer) e restituisce un set di claim ridotto, segnalando l'esito positivo nonostante la firma dell'emittente rimanga valida. Sia una Disclosure manomessa che rimane JSON valido sia una Disclosure contenenti byte UTF-8 non validi subiscono questo comportamento di ignorazione silenziosa. Nel secondo caso, il percorso di decodifica `TextDecoder / Buffer` sostituisce i caratteri di sostituzione U+FFFD, recuperando dati di disclosure sintatticamente validi invece di rifiutare l'input malformato. Ciò viola la sezione 7.1 passo 5 della RFC 9901, che richiede il rifiuto delle Disclosure non referenziate, e le sezioni 7.1 passo 3 / 4.2.1, che richiedono il rifiuto delle Disclosure non valide. Un holder malintenzionato può sfruttare questa primitiva di omissione, anche tramite `SDJwtInstance.verify()` quando è richiesta la key binding (vincolo della chiave). Anche un on-path attacker può manomettere una Disclosure quando la relying party non impone la key binding; l'imposizione della key binding respinge le manipolazioni on-path poiché invalida il vincolo KB-JWT `sd_hash`. Se la relying party predefinisce il permesso di accesso in assenza di claim restrittivi relativi ad età, ruolo o altre limitazioni, la riduzione silenziosa dei claim può modificare una decisione di autorizzazione senza generare un errore. Questo problema è risolto nella versione 0.20.0 di `@sd-jwt/core`; non è stata identificata alcuna versione patchata del pacchetto standalone `@sd-jwt/decode`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.