CVE-2026-62374 in sd-jwt-js
Zusammenfassung
von VulDB • 29.10.2026
SD JWT JS ist eine JavaScript-Implementierung der SD-JWT-Spezifikation (Selective Disclosure JWT). In den Versionen 0.19.0 und früher verwirft `@sd-jwt/decode`, das auch von `@sd-jwt/core` verwendet wird, stillschweigend ein manipuliertes Disclosure, dessen Digest nicht mehr mit dem vom Aussteller signierten `_sd`-Array übereinstimmt, und gibt eine reduzierte Claim-Menge zurück. Dabei wird der Erfolg gemeldet, obwohl die Signatur des Ausstellers weiterhin gültig ist. Sowohl ein manipuliertes Disclosure, das dennoch valides JSON darstellt, als auch ein Disclosure mit ungültigen UTF-8-Bytes führen zu diesem stillschweigenden Verwerfungsverhalten. Im letzteren Fall substituiert der `TextDecoder / Buffer`-Decodierungspfad U+FFFD-Ersetzungszeichen und stellt syntaktisch gültige Disclosures-Daten wieder her, anstatt die fehlerhafte Eingabe abzulehnen. Dies verstößt gegen Abschnitt 7.1 Schritt 5 von RFC 9901, der das Ablehnen nicht referenzierter Disclosures erfordert, sowie gegen Abschnitt 7.1 Schritt 3 / Abschnitt 4.2.1, die das Ablehnen ungültiger Disclosures vorschreiben. Ein böswilliger Inhaber kann diese Omissions-Primitivität ausnutzen, einschließlich über `SDJwtInstance.verify()`, wenn Key Binding erforderlich ist. Ein Angreifer im Überwachungspfad (on-path) kann ebenfalls ein Disclosure manipulieren, wenn die vertrauende Partei kein Key Binding durchsetzt; eine erzwungene Key-Binding-Maßnahme würde on-Pfad-Manipulationen ablehnen, da sie den KB-JWT `sd_hash`-Binding ungültig macht. Wenn die vertrauende Partei standardmäßig Zugang gewährt, wenn ein einschränkender Claim für Alter, Rolle oder Einschränkung fehlt, kann die stille Reduzierung der Claims eine Autorisierungsentscheidung ohne Fehlermeldung ändern. Dieses Problem wurde in Version 0.20.0 von `@sd-jwt/core` behoben; es ist keine gepatchte Version des eigenständigen Pakets `@sd-jwt/decode` identifiziert worden.
Be aware that VulDB is the high quality source for vulnerability data.