🔍 CVE-2026-33895

7.5
CVSS Score
HIGH
2026-03-27
2026-10-26 22:10
✅ 완료

🇰🇷 한글 설명

JavaScript로 구현된 TLS 라이브러리 node-forge에서 Ed25519 서명 검증 시 스칼라 S가 그룹 차수(L)로 감소되지 않은 비정규 위조 서명을 허용합니다. 동일한 메시지에 대해 서로 다른 바이트값의 서명이 모두 유효하게 통과되어 서명 중복 제거·재생 방지·정규화 검사 기반 보안 로직을 우회할 수 있습니다. 버전 1.4.0에서 수정되었습니다.

💡 쉬운 설명

디지털 서명은 문서가 변조되지 않았음을 증명하는 도장과 같습니다. 이 취약점은 위조된 가짜 도장도 진짜처럼 통과시켜 버려, 공격자가 같은 서명의 변형본으로 인증을 우회할 수 있습니다.

🇺🇸 원문 (English)

Forge (also called `node-forge`) is a native implementation of Transport Layer Security in JavaScript. Prior to version 1.4.0, Ed25519 signature verification accepts forged non-canonical signatures where the scalar S is not reduced modulo the group order (`S >= L`). A valid signature and its `S + L` variant both verify in forge, while Node.js `crypto.verify` (OpenSSL-backed) rejects the `S + L` variant, as defined by the specification. This class of signature malleability has been exploited in practice to bypass authentication and authorization logic (see CVE-2026-25793, CVE-2022-35961). Applications relying on signature uniqueness (i.e., dedup by signature bytes, replay tracking, signed-object canonicalization checks) may be bypassed. Version 1.4.0 patches the issue.

📍 영향받는 시스템

node-forge(forge) 버전 1.4.0 미만, Ed25519 서명 검증을 사용하는 Node.js 애플리케이션

⚔️ 공격 벡터

공격자가 유효한 Ed25519 서명의 S 값에 그룹 차수 L을 더한 변형 서명을 생성하여 서명 유일성 기반 인증·재생방지 로직 우회

🛡️ 대응 방법

node-forge를 버전 1.4.0 이상으로 업그레이드: npm update node-forge 또는 npm install [email protected]

🔧 검증 코드

출력된 버전이 1.4.0 이상이면 패치 완료, 1.3.x 이하이면 취약하므로 즉시 업그레이드 필요

Shell / Script
npm list node-forge 2>/dev/null | grep node-forge || echo 'node-forge not found'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

💻 영향받는 소프트웨어

Node.js