🇰🇷 한글 설명
undici WebSocket 클라이언트가 분할된 압축되지 않은 메시지의 누적 크기를 제한하지 않아 발생하는 메모리 고갈 취약점입니다. 공격자가 작은 조각의 메시지를 지속적으로 전송하면 클라이언트 프로세스의 메모리가 무한정 증가하여 서비스 거부(DoS) 상태에 빠질 수 있습니다.
💡 쉬운 설명
웹사이트와 데이터를 주고받는 도구에서 전체 데이터의 총량을 체크하지 못하는 결함이 발견되었습니다. 나쁜 서버가 아주 작은 데이터 조각을 계속 보내면 컴퓨터의 메모리를 모두 써버려 프로그램이 멈출 수 있습니다.
🇺🇸 원문 (English)
Impact:
The undici WebSocket client enforces maxPayloadSize per-frame but does not enforce the cumulative size of fragmented uncompressed messages. A malicious WebSocket server can stream many small fragments that each pass per-frame validation but collectively exceed the configured limit, causing unbounded memory growth in the client process. The result is memory exhaustion and a denial of service.
Affected applications are those using the undici WebSocket client (new WebSocket(...)) that can be induced to connect to an attacker-controlled or compromised WebSocket endpoint.
This is a regression specific to undici 8.1.0. The 6.25.0 line shipped the equivalent cumulative check from the start and is unaffected. The 7.x line never had the maxPayloadSize feature and is also unaffected.
Patches:
Upgrade to undici >= 8.5.0.
Workarounds:
No workaround is available. The fix must be applied through an upgrade.
📍 영향받는 시스템
undici 8.1.0 버전 (6.25.0 및 7.x 버전은 안전함)
⚔️ 공격 벡터
공격자가 제어하는 악성 WebSocket 엔드포인트로 클라이언트를 연결 유도
🛡️ 대응 방법
undici 버전을 8.5.0 이상으로 업그레이드
🔧 검증 코드
출력된 결과에서 undici의 버전을 확인하여 8.1.0인지 또는 8.5.0 이상인지 확인합니다.
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
IBM WebSphere Application Server