🇰🇷 한글 설명
Python HTTP 클라이언트인 Zapros 0.14.0 미만 버전에서 발생하는 서비스 거부(DoS) 취약점입니다. 신뢰할 수 없는 서버로부터 과도하게 중첩된 Content-Encoding 헤더를 포함한 응답을 받을 경우, 압축 해제 과정에서 과도한 리소스를 소모하여 시스템이 마비될 수 있습니다.
💡 쉬운 설명
웹사이트가 데이터를 보낼 때 압축을 여러 겹으로 겹쳐서 보내면, 프로그램이 이를 풀다가 힘이 빠져서 멈춰버리는 문제입니다. 악의적인 공격자가 이 방식을 사용하여 서비스를 중단시킬 수 있습니다.
🇺🇸 원문 (English)
Zapros, a Python HTTP client, prior to version 0.14.0 is vulnerable to denial of service when an application requests content from an untrusted server, or follows a redirect to one, because a malicious response containing an excessive number of chained `Content-Encoding` values causes Zapros to construct a deeply nested decompression chain that consumes excessive resources. Version 0.14.0 patches the vulnerability by limiting responses to five content-encoding layers and raising `DecodingError` when that limit is exceeded. As a workaround, applications can add response middleware that inspects the `Content-Encoding` header and rejects responses containing more than a safe number of encoding layers.
📍 영향받는 시스템
Zapros Python HTTP client version < 0.14.0
⚔️ 공격 벡터
신뢰할 수 없는 서버로부터 과도하게 중첩된 Content-Encoding 헤더를 포함한 HTTP 응답을 수신
🛡️ 대응 방법
Zapros를 0.14.0 이상 버전으로 업데이트하거나, Content-Encoding 헤더의 개수를 제한하는 미들웨어를 추가
🔧 검증 코드
출력된 버전이 0.14.0 미만이면 취약한 상태입니다.
pip show zapros 2>/dev/null | grep Version
💻 영향받는 소프트웨어
IBM WebSphere Application Server