🇰🇷 한글 설명
xml-crypto 라이브러리의 XML 서명 검증 메커니즘에 결함이 있어, 공격자가 유효한 서명된 XML 문서를 변조하면서도 서명 검증을 통과할 수 있습니다. 이를 통해 신원 정보나 접근 제어 속성을 변조하여 권한 상승 및 타 사용자 가장이 가능합니다.
💡 쉬운 설명
XML 문서의 전자서명을 확인하는 기능에 허점이 있어서, 문서를 몰래 바꿔도 서명 검증을 통과할 수 있습니다. 이를 이용해 권한을 높이거나 다른 사용자가 된 척할 수 있습니다.
🇺🇸 원문 (English)
xml-crypto is an XML digital signature and encryption library for Node.js. An attacker may be able to exploit a vulnerability in versions prior to 6.0.1, 3.2.1, and 2.1.6 to bypass authentication or authorization mechanisms in systems that rely on xml-crypto for verifying signed XML documents. The vulnerability allows an attacker to modify a valid signed XML message in a way that still passes signature verification checks. For example, it could be used to alter critical identity or access control attributes, enabling an attacker with a valid account to escalate privileges or impersonate another user. Users of versions 6.0.0 and prior should upgrade to version 6.0.1 to receive a fix. Those who are still using v2.x or v3.x should upgrade to patched versions 2.1.6 or 3.2.1, respectively.
📍 영향받는 시스템
xml-crypto v6.0.0 이하, v3.2.0 이하, v2.1.5 이하 (Node.js)
⚔️ 공격 벡터
서명된 XML 메시지의 속성을 변조한 후 기존 서명으로 검증 통과 유도
🛡️ 대응 방법
xml-crypto를 v6.0.1, v3.2.1, 또는 v2.1.6 이상의 패치 버전으로 즉시 업그레이드
🔧 검증 코드
출력된 버전이 6.0.1, 3.2.1, 2.1.6 이상이면 안전하고, 그 이하 버전이면 취약함
npm list xml-crypto 2>/dev/null | grep -E 'xml-crypto@[0-6]'