🔍 CVE-2026-106072

6.7
CVSS Score
MEDIUM
2026-10-23
2026-10-23 19:42
✅ 완료

🇰🇷 한글 설명

Node.js의 TLS 호스트명 검증에서 결함이 발견되었습니다. `0177.0.0.1`, `0x7f.0.0.1`, `2130706433`, `127.1`처럼 정규화되지 않은 IPv4 표기를 사용하면 IP 주소로 분류되지 않고 DNS SAN과 비교되어, IP SAN이 없는 DNS SAN 인증서가 잘못 허용될 수 있습니다. 이 취약점은 Node.js 26.x, 24.x, 22.x에 영향을 미칩니다.

💡 쉬운 설명

Node.js가 특정 방식으로 쓰인 IP 주소를 확인할 때 인증서 검증을 잘못 처리합니다. 이로 인해 공격자가 잘못된 인증서로 서버를 사칭할 가능성이 있습니다.

🇺🇸 원문 (English)

A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when the client connects using a non-canonical IPv4 spelling, such as `0177.0.0.1`, `0x7f.0.0.1`, `2130706433` or `127.1`. `tls.checkServerIdentity()` did not classify these hosts as IP addresses, but normalized them to their canonical form and matched the result against the certificate DNS names. A certificate containing `DNS:127.0.0.1` and no `IP Address:127.0.0.1` SAN was therefore accepted, while the same certificate is correctly rejected for `127.0.0.1`. Exploitation requires a certificate with a numeric DNS SAN issued by a CA trusted by the client, and a platform resolver that accepts these spellings, such as glibc. This vulnerability affects Node.js **26.x**, **24.x**, and **22.x**.

📍 영향받는 시스템

Node.js 22.x, 24.x, 26.x (glibc 등 해당 표기를 허용하는 리졸버 사용 환경)

⚔️ 공격 벡터

신뢰된 CA로부터 숫자형 DNS SAN 인증서를 확보한 뒤, 비정규 IPv4 표기로 연결을 유도해 중간자 공격으로 서버를 사칭

🛡️ 대응 방법

Node.js를 보안 패치가 적용된 최신 버전(22, 24, 26 계열의 수정 릴리스)으로 업데이트

🔧 검증 코드

출력된 버전이 22.x, 24.x, 26.x의 패치된 최신 릴리스보다 낮으면 취약하며, 보안 공지에 명시된 수정 버전 이상이면 조치가 완료된 것입니다.

Shell / Script
node -p "process.versions.node"

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js