Eclipse Jetty: Cross-Request Leakage for trailers on HTTP/1.1 keep-alive connections
위협 신호 · CVSS · EPSS · KEV
이론적 심각도 점수
30일 내 악용 확률 예측
실측 악용 기록 없음
계획된 패치 주기 내 조치(60일 이내)
CVSS 벡터 · 메트릭
CVSS 벡터 정보 없음
상세 설명
Description
FINDING — MEDIUM (HTTP/1.1 keep-alive connections with trailers)
HttpConnection._trailers Cross-Request Leakage (Never Reset Between Requests)Location:
jetty-core/jetty-server/src/main/java/org/eclipse/jetty/server/internal/
HttpConnection.java:107, 1157-1161, 1170Detail:
_trailers (line 107) is a connection-scoped HttpFields.Mutable field.
parsedTrailer() (line 1157) populates it when request N carries HTTP trailers.
messageComplete() (line 1170) checks "if (_trailers != null)" — evaluates true
from request N's data — and stamps it onto request N+1.Grep confirms: ZERO occurrences of "_trailers = null" in entire HttpConnection.java.
Scenario:
Request N: POST /upload (trailers: X-Checksum: abc123)
Request N+1: GET /data (no trailers)
app: request.getTrailers() on N+1 → returns {X-Checksum: abc123} ← STALEApplication logic branching on getTrailers() != null produces incorrect behavior.
Not cross-connection (same keep-alive connection only).More dangerous scenario: TOCTOU — trailer passes check, target swapped before use.
Workarounds
Do not rely on HTTP request trailers for security-sensitive logic, or disable persistent connections by closing the connection after each HTTP/1.1 request.
AI 심층 분석
공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.
참고 자료 10
링크 내용 불러오는 중…