Http4s Ember accepts Transfer-Encoding combined with Content-Length (CL.TE request smuggling)
위협 신호 · CVSS · EPSS · KEV
이론적 심각도 점수
예측 데이터 없음
실측 악용 기록 없음
계획된 패치 주기 내 조치(60일 이내)
CVSS 벡터 · 메트릭
CVSS 벡터 정보 없음
상세 설명
Summary
Ember's HTTP/1.1 request parser does not reject a message that carries both a
Transfer-Encoding and a Content-Length header. RFC 9112 §6.1 requires a
server to treat such a message as a framing error and close the connection.
An intermediary that follows the RFC's CL-strip-and-forward path (or that
prioritises Content-Length) will frame the body differently from Ember,
enabling HTTP request smuggling (CL.TE).
Impact
Server
Request smuggling when ember-server is an origin behind an intermediary that
forwards both headers over a keep-alive backend connection and frames by
Content-Length while Ember frames by chunked:
- Front-end security bypass: the smuggled request reaches paths the
intermediary's ACL/auth layer would have blocked, with attacker-chosen
method and headers. - Cross-user request hijack: a dangling smuggled prefix concatenates with the
next victim's request on the shared backend socket, capturing its headers. - Cache poisoning: the smuggled response is associated with the next request
key in a caching proxy.
Client
ember-client shares the same parser on the response path. An upstream that
sends both headers can desync a pooled client connection. This requires a
malicious or compromised upstream.
Preconditions
- Unauthenticated remote attacker (server)
- ember-server as origin behind a keep-alive intermediary
- Intermediary forwards a request carrying both
Transfer-Encodingand
Content-Length(RFC says it MAY reject; many forward) and frames by
Content-Length - Malicious or compromised upstream (client)
Workarounds
- Intermediary strictly rejects requests carrying both
Transfer-Encoding
andContent-Length - Intermediary buffers and re-encodes request bodies
- Disable backend keep-alive between the intermediary and Ember
AI 심층 분석
공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.
참고 자료 5
링크 내용 불러오는 중…