CVE-2026-62374 in sd-jwt-js
要約
〜によって VulDB • 2026年10月29日
SD JWT JSは、Selective Disclosure JWT (SD-JWT)仕様のJavaScript実装です。バージョン0.19.0およびそれ以前では、`@sd-jwt/core`でも使用される`@sd-jwt/decode`が、発行者署名済み`_sd`配列のダイジェストと一致しなくなった改ざんされたDisclosureを静かに破棄し、減算されたクレームセットを返します。これにより、発行者の署名は有効なまま成功として報告されます。無効なUTF-8バイトを含むDisclosureだけでなく、有効なJSONのままの改ざんされたDisclosureでもこの静かな破棄動作が発生します。後者の場合、`TextDecoder / Buffer`のデコーディングパスではU+FFFD置換文字が使用され、不正な入力を拒否する代わりに構文的に有効な開示データが復元されます。これは、参照されないDisclosureの拒否を要求するRFC 9901セクション7.1ステップ5と、無効なDisclosureの拒否を要求するセクション7.1ステップ3/セクション4.2.1に違反しています。悪意のあるホルダーは、キーバインディングが要求される場合でも`SDJwtInstance.verify()`を通じてこの欠陥を利用できます。また、信頼 relying party がキーバインディングを強制しない場合、パス上の攻撃者はDisclosureの改ざんを行うことができます。キーバインディングが強制されている場合は、KB-JWT `sd_hash` バインディングが無効化されるため、パス上の改ざんは拒否されます。もし信頼 relying party が制約的な年齢、役割、または制限クレームが存在しない場合にアクセスを許可するデフォルト設定になっている場合、静かなクレームの減算によりエラーなしで認可判断が変更されることがあります。この問題は`@sd-jwt/core`バージョン0.20.0で修正されました。スタンドアロンの`@sd-jwt/decode`パッケージにはパッチ済みバージョンは特定されていません。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.