🔍 CVE-2026-118774

3.7
CVSS Score
LOW
2026-10-29
2026-11-03 17:17
✅ 완료

🇰🇷 한글 설명

Forge(node-forge)는 JavaScript로 구현된 TLS 라이브러리입니다. 1.4.1 이전 버전에서는 인증서 서명 검증 시 RSA 패딩과 RSASSA-PSS 파라미터를 검증 대상 자식 인증서가 아닌 발급자(issuer) 인증서에서 선택하여, 자식 인증서가 RSASSA-PSS로 표기되어 있어도 발급자가 PKCS#1 v1.5를 사용하면 PKCS#1 v1.5 서명이 수락될 수 있습니다. 이는 서명 방식을 명시적으로 요구하는 정책을 우회할 수 있는 문제이며, 1.4.1에서 수정되었습니다.

💡 쉬운 설명

인증서가 어떤 서명 방식을 쓰는지 확인해야 하는 보안 정책이 있어도, 이 취약점 때문에 다른 방식의 서명이 통과될 수 있습니다. 다만 신뢰된 발급자의 개인키 없이는 인증서를 위조할 수 없어 영향은 제한적입니다.

🇺🇸 원문 (English)

Forge (also called node-forge) is a native implementation of Transport Layer Security in JavaScript. Prior to 1.4.1, the affected implementation used certificate.verify(child), _verifySignature(), lib/x509.js to process the relevant input or security decision. node-forge selected RSA padding and RSASSA-PSS parameters from the issuer certificate rather than the child certificate being verified. A child labeled as RSASSA-PSS could therefore be accepted with a PKCS#1 v1.5 signature when the issuer used PKCS#1 v1.5. The signature still had to be produced with the trusted issuer's private key, so this did not permit certificate identity forgery, but it could bypass policies that require a declared signature scheme. This issue is fixed in version 1.4.1.

📍 영향받는 시스템

node-forge 1.4.1 미만 버전을 사용하는 Node.js 및 JavaScript 애플리케이션

⚔️ 공격 벡터

공격자가 서명 방식 표기를 조작한 자식 인증서를 제시해 서명 방식 정책 검사를 우회하는 방식 (발급자 개인키 필요)

🛡️ 대응 방법

node-forge를 1.4.1 이상으로 업그레이드 (npm update node-forge 또는 package.json 수정 후 재설치)

🔧 검증 코드

출력된 node-forge 버전이 1.4.1 미만이면 취약, 1.4.1 이상이면 수정됨 (여러 버전이 나오면 모두 확인)

Shell / Script
npm ls node-forge 2>/dev/null | grep node-forge

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Oracle Java SE