CVE-2026-62374 in sd-jwt-js
요약
\~에 의해 VulDB • 2026. 10. 29.
SD JWT JS는 선택적 공개 JWT(SD-JWT) 사양의 JavaScript 구현체입니다. 버전 0.19.0 및 그 이전 버전에서, `@sd-jwt/core`에서도 사용되는 `@sd-jwt/decode`는 발행자 서명된 `_sd` 배열과 일치하지 않는 변조된 Disclosure를 묵시적으로 삭제하고 축소된 클레임 세트를 반환하며, 발행자 서명이 유효한 상태임에도 성공을 보고합니다. 이러한 묵식적 삭제 동작은 유효한 JSON인 상태로 유지되는 변조된 Disclosure와 잘못된 UTF-8 바이트를 포함하는 Disclosure 모두에서 발생합니다. 후자의 경우 `TextDecoder / Buffer` 디코딩 경로가 U+FFFD 대체 문자로 치환하여, 잘못 입력된 데이터를 거부하기 대신 구문적으로 유효한 disclosure 데이터를 복원합니다. 이는 미참조 Disclosures의 거부를 요구하는 RFC 9901 섹션 7.1 단계 5와, 잘못된 Disclosures의 거부를 요구하는 섹션 7.1 단계 3/섹션 4.2.1을 위반합니다. 악성 홀더는 키 바인딩이 필요한 경우 `SDJwtInstance.verify()`를 통해 포함하여 이러한 누락된 원시적 결함(exploit primitive)을 공격할 수 있습니다. 또한, 신뢰 당사자(relying party)가 키 바인딩을 강제하지 않는 경우 온-패스(on-path) 공격자는 Disclosure를 변조할 수 있습니다. 키 바인딩이 enforced될 경우 KB-JWT `sd_hash` 바인딩이 무효화되므로 온-패스 변조는 거부됩니다. 만약 신뢰 당사자가 제한적 연령, 역할 또는 제약 클레임이 누락된 경우 접근을 허용하는 것을 기본값으로 설정한다면, 묵시적인 클레임 축소는 오류 없이도 인증 결정을 변경할 수 있습니다. 이 문제는 `@sd-jwt/core` 버전 0.20.0에서 수정되었습니다. 별도의 standalone인 `@sd-jwt/decode` 패키지에 대한 패치된 버전은 식별되지 않았습니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.