🔍 CVE-2025-59465

7.5
CVSS Score
HIGH
2026-01-20
2026-07-15 02:17
✅ 완료

🇰🇷 한글 설명

Node.js에서 잘못된 HTTP/2 HEADERS 프레임으로 인해 HPACK 데이터 처리 오류가 발생하여 원격 서비스 거부 공격을 허용하는 취약점

💡 쉬운 설명

Node.js에서 잘못된 HTTP/2 요청을 처리할 때 시스템이 충돌하여 원격 서비스 거부 공격이 가능해집니다. 이는 보안 소켓에 명시적인 오류 핸들러가 없는 경우에 주로 발생합니다.

🇺🇸 원문 (English)

A malformed `HTTP/2 HEADERS` frame with oversized, invalid `HPACK` data can cause Node.js to crash by triggering an unhandled `TLSSocket` error `ECONNRESET`. Instead of safely closing the connection, the process crashes, enabling a remote denial of service. This primarily affects applications that do not attach explicit error handlers to secure sockets, for example: ``` server.on('secureConnection', socket => { socket.on('error', err => { console.log(err) }) }) ```

📍 영향받는 시스템

Node.js를 사용하는 시스템, 특히 보안 소켓에 오류 핸들러가 없는 경우

⚔️ 공격 벡터

잘못된 HTTP/2 HEADERS 프레임을 보내어 시스템 충돌을 유발하는 원격 서비스 거부 공격

🛡️ 대응 방법

Node.js 버전을 최신으로 업데이트하고, 보안 소켓에 명시적인 오류 핸들러를 추가합니다.

🔧 검증 코드

로컬에서 Node.js 서버를 실행하고, Python 스크립트를 사용하여 HTTP 요청을 보내서 응답 코드를 확인합니다. 정상적으로 동작한다면 양호한 결과를 출력하고, 그렇지 않다면 취약한 결과를 출력합니다. 이 스크립트를 실행하기 위해서는 requests와 json 라이브러리가 필요합니다.

Shell / Script
import requests
import json
try:
    response = requests.get('http://localhost:3000', headers={'User-Agent': 'Mozilla/5.0'})
    if response.status_code == 200:
        print(json.dumps({"result": "양호", "reason": "Node.js 서비스가 정상적으로 동작합니다."}))
    else:
        print(json.dumps({"result": "취약", "reason": "Node.js 서비스가 예상과 다르게 동작합니다."}))
except Exception as e:
    print(json.dumps({"result": "취약", "reason": str(e)}))

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Node.js