🇰🇷 한글 설명
Node.js용 HTTP 클라이언트 라이브러리인 undici의 EventSource 클라이언트에서 발생하는 메모리 고갈 취약점입니다. 악의적인 서버가 종료되지 않는 데이터 필드나 조각난 데이터를 지속적으로 전송할 경우, 파서가 상태 정보를 계속 유지하면서 프로세스 메모리를 모두 점유하여 서비스 거부(DoS)를 유발할 수 있습니다.
💡 쉬운 설명
나쁜 서버가 끊임없이 조각난 데이터를 보내면, 프로그램이 이를 처리하느라 메모리를 너무 많이 써서 결국 멈춰버리는 문제입니다. 이로 인해 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
undici is an HTTP client library for Node.js. In versions 6.5.0 through 6.29.0, 7.0.0 through 7.30.0, and 8.0.0 through 8.12.1, its EventSource client can be driven to exhaust process memory by a malicious or compromised Server-Sent Events peer. By sending millions of tiny completed data fields with no blank event separator, or a single unfinished line split across many chunks, the parser retains a growing amount of per-field and per-chunk state that the byte-based maxEventSize and maxResponseSize limits do not bound, and because maxResponseSize is enforced on the compressed body before decompression, a small compressed response can expand into enough retained memory to terminate the process. An application only needs to maintain an EventSource connection to an untrusted peer, which controls only the response, and availability is the only impact. The issue is fixed in undici 6.29.1, 7.30.1, and 8.12.2, which bound the retained parser state independently of the byte limits, and users should upgrade to one of those versions or later. There is no workaround.
📍 영향받는 시스템
undici versions 6.5.0-6.29.0, 7.0.0-7.30.0, 8.0.0-8.12.1
⚔️ 공격 벡터
신뢰할 수 없는 서버로부터 EventSource 연결을 통해 조작된 SSE(Server-Sent Events) 응답을 수신함
🛡️ 대응 방법
undici 버전을 6.29.1, 7.30.1 또는 8.12.2 이상으로 업그레이드하십시오.
🔧 검증 코드
출력된 undici의 버전이 취약한 범위(6.5.0-6.29.0, 7.0.0-7.30.0, 8.0.0-8.12.1)에 포함되는지 확인하십시오.
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server