🔍 CVE-2026-2229

7.5
CVSS Score
HIGH
2026-03-12
2026-09-04 13:18
✅ 완료

🇰🇷 한글 설명

undici WebSocket 클라이언트가 permessage-deflate 확장 기능의 server_max_window_bits 매개변수를 적절히 검증하지 않아 서비스 거부(DoS) 공격에 취약합니다. 악의적인 서버가 유효 범위를 벗어난 값을 전송할 경우, 클라이언트에서 처리되지 않은 RangeError 예외가 발생하여 Node.js 프로세스가 즉시 종료됩니다.

💡 쉬운 설명

웹사이트와 통신할 때 데이터를 압축하는 과정에서 잘못된 설정값을 보내면 프로그램이 갑자기 꺼져버리는 문제입니다. 공격자가 이 값을 조작하여 서버를 운영하는 프로그램을 강제로 종료시킬 수 있습니다.

🇺🇸 원문 (English)

ImpactThe undici WebSocket client is vulnerable to a denial-of-service attack due to improper validation of the server_max_window_bits parameter in the permessage-deflate extension. When a WebSocket client connects to a server, it automatically advertises support for permessage-deflate compression. A malicious server can respond with an out-of-range server_max_window_bits value (outside zlib's valid range of 8-15). When the server subsequently sends a compressed frame, the client attempts to create a zlib InflateRaw instance with the invalid windowBits value, causing a synchronous RangeError exception that is not caught, resulting in immediate process termination. The vulnerability exists because: * The isValidClientWindowBits() function only validates that the value contains ASCII digits, not that it falls within the valid range 8-15 * The createInflateRaw() call is not wrapped in a try-catch block * The resulting exception propagates up through the call stack and crashes the Node.js process

📍 영향받는 시스템

undici WebSocket client (permessage-deflate extension 사용 시)

⚔️ 공격 벡터

악의적인 서버가 WebSocket 연결 시 zlib 유효 범위(8-15)를 벗어난 server_max_window_bits 값을 응답하여 클라이언트를 종료시킴

🛡️ 대응 방법

undici 라이브러리를 최신 보안 패치가 적용된 버전으로 업데이트하고, 서버로부터 오는 확장 매개변수에 대한 유효성 검증 로직을 확인하십시오.

🔧 검증 코드

출력된 undici의 버전을 확인하여 취약점이 해결된 최신 버전인지 대조하십시오.

Shell / Script
npm list undici

📊 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