🇰🇷 한글 설명
Http4s의 WebSocket FrameTranscoder에서 음수 64비트 페이로드 길이를 허용하는 취약점이 발견되었습니다. 공격자가 Ember 서버를 통해 특수하게 조작된 프레임을 전송하면 디코더가 무한 루프에 빠져 CPU 점유율이 급증하고 메모리가 무제한으로 증가하는 서비스 거부(DoS) 상태가 발생합니다.
💡 쉬운 설명
웹사이트와 통신할 때 사용하는 도구에 오류가 있어, 나쁜 의도를 가진 사용자가 잘못된 신호를 보내면 서버가 멈추거나 과부하가 걸릴 수 있습니다. 이로 인해 서버가 정상적인 서비스를 제공하지 못하게 됩니다.
🇺🇸 원문 (English)
Http4s is a Scala interface for HTTP services. Prior to 0.23.35 and 1.0.0-M47, WebSocket FrameTranscoder.bodyLength rejects extended payload lengths above Integer.MAX_VALUE but permits negative 64-bit lengths. A remote client that completes a WebSocket handshake through an Ember server can send such a frame, causing the decoder to return an empty frame without advancing its input. The decode loop then runs indefinitely, pins a worker at full CPU, and grows an ArrayBuffer without bound, resulting in denial of service. This issue is fixed in versions 0.23.35 and 1.0.0-M47.
📍 영향받는 시스템
Http4s versions prior to 0.23.35 and 1.0.0-M47
⚔️ 공격 벡터
Remote client sending a WebSocket frame with a negative 64-bit payload length via an Ember server
🛡️ 대응 방법
Update Http4s to version 0.23.35 or 1.0.0-M47 or later
🔧 검증 코드
출력된 Http4s 버전이 0.23.35 또는 1.0.0-M47 미만인지 확인하십시오.
sbt dependencyBrowseGraph | grep -E 'http4s-core'