CVE-2024-32962
부적절한 서명 검증으로 인한 XML 서명 검증 우회 / 서명 위조
- 게시됨
- 2024. 5. 2.
- 업데이트됨
- 2025. 2. 13.
- CNA 할당 중
- GitHub_M
- 증거 관찰됨
- 2026. 8. 8.
기본 CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N낮음 · 다음 30일
- 백분위수
- 55.7%
- 모델 날짜
- 2026. 9. 21.
EPSS는 통계적 추정치이지 확실성이나 영향의 척도가 아닙니다. 이를 CVSS, KEV 상태, 노출 및 환경과 결합하세요.
요약
xml-crypto는 Node.js용 XML 디지털 서명 및 암호화 라이브러리입니다. 영향을 받는 버전에서 기본 구성은 서명자의 권한을 확인하지 않으며, w3 xmldsig-core-20080610 사양의 섹션 3.2.2에 따라 서명의 유효성만 확인합니다. 따라서 추가 검증 단계 없이 기본 구성은 악의적인 행위자가 XML 문서에 다시 서명하고, 인증서를 `<KeyInfo />` 요소에 배치하고, `xml-crypto` 기본 검증 검사를 통과할 수 있게 합니다. 그 결과 `xml-crypto`는 기본적으로 디지털 서명된 XML 문서의 `<KeyInfo />`를 통해 제공되는 모든 인증서를 신뢰합니다. `xml-crypto`는 서명 검증 목적으로 특정 인증서(`publicCert`)를 사용하도록 라이브러리가 구성된 경우에도 디지털 서명된 XML 문서의 `<KeyInfo />`를 통해 제공되는 인증서를 우선적으로 사용합니다. 공격자는 XML 문서를 수정하고 기존 서명을 악의적인 개인 키(공격자가 생성)로 생성된 서명으로 대체하고 해당 개인 키의 인증서를 `<KeyInfo />` 요소에 첨부하여 서명 검증을 위조할 수 있습니다. 이 취약점은 풀 리퀘스트 301 / 커밋 `c2b83f98`에서 `4.0.0`에 도입된 변경 사항의 조합이며, 버전 6.0.0에서 풀 리퀘스트 445 / 커밋 `21201723d`로 해결되었습니다. 사용자는 업그레이드할 것을 권장합니다. 업그레이드할 수 없는 사용자는 검증 결과를 수락하기 전에 `getCertFromKeyInfo`를 통해 추출된 인증서를 신뢰할 수 있는 인증서와 대조하여 확인하거나, `xml-crypto`의 `getCertFromKeyInfo`를 `() => undefined`로 설정하여 `xml-crypto`가 서명 검증을 위해 명시적으로 구성된 `publicCert` 또는 `privateKey`를 사용하도록 강제할 수 있습니다.
소스
1CVE-2024-32962를 악용한 공격을 시뮬레이션하여 SAML 메시지를 위조하고 무단 권한을 획득함으로써 해당 취약점의 영향을 입증합니다.
책임 있는 사용
귀하가 소유하고 있거나 테스트할 권한이 있는 시스템에 대해서만 취약점 정보를 사용하십시오. Kitploit은 공개 연구 메타데이터에 연결되며 익스플로잇 코드나 악성 페이로드를 저장하지 않습니다.