🔍 CVE-2026-84380

5.6
CVSS Score
MEDIUM
2026-09-02
2026-09-09 21:05
✅ 완료

🇰🇷 한글 설명

Python용 HTTP 클라이언트인 HTTPX2 2.11.0 미만 버전에서 Request._prepare() 함수가 Content-Length와 Transfer-Encoding 헤더를 동시에 추가할 수 있는 취약점이 발견되었습니다. 이로 인해 HTTP/1.1 요청 시 두 프레이밍 헤더가 공존하게 되어, 다운스트림 중계 장치 간의 해석 차이로 인한 HTTP 요청 스머글링 또는 연결 비동기화가 발생할 수 있습니다.

💡 쉬운 설명

웹 요청을 보낼 때 데이터 크기를 나타내는 두 가지 서로 다른 방식의 표시가 동시에 포함될 수 있는 문제입니다. 이로 인해 중간 서버들이 요청을 다르게 해석하여 보안 공격에 악용될 수 있습니다.

🇺🇸 원문 (English)

HTTPX2 is a next generation HTTP client for Python. Prior to 2.11.0, Request._prepare() in src/httpx2/httpx2/_models.py can add a body-derived Content-Length header to a request that already contains a caller-supplied Transfer-Encoding header because its setdefault() processing checks each default header independently rather than treating the two framing headers as mutually exclusive. Fixed-size byte, JSON, form, and known-length multipart bodies can therefore be serialized over HTTP/1.1 with both headers, allowing request smuggling or connection desynchronization when downstream intermediaries disagree about which framing header takes precedence. This issue is fixed in version 2.11.0.

📍 영향받는 시스템

HTTPX2 version < 2.11.0

⚔️ 공격 벡터

HTTP 요청 헤더에 Content-Length와 Transfer-Encoding을 동시에 포함시켜 중간 서버의 해석 차이를 유도하는 방식

🛡️ 대응 방법

HTTPX2 라이브러리를 2.11.0 버전 이상으로 업데이트하십시오.

🔧 검증 코드

출력된 버전 번호가 2.11.0보다 낮으면 취약한 상태입니다.

Shell / Script
pip show httpx2 | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L

💻 영향받는 소프트웨어

Python