🇰🇷 한글 설명
Python용 HTTP/2 헤더 인코딩 라이브러리인 hpack 4.2.0 미만 버전에서 발생하는 취약점입니다. 악의적으로 조작된 입력값에 대해 제한 없는 가변 정수 디코딩을 수행할 경우, O(n^2)의 시간 복잡도가 발생하여 연산이 무한히 지속되는 서비스 거부(DoS) 상태가 될 수 있습니다.
💡 쉬운 설명
특수하게 조작된 데이터를 보내면 컴퓨터가 이를 처리하느라 과도한 계산을 반복하게 만드는 문제입니다. 이로 인해 프로그램이 멈추거나 응답하지 않는 상태가 될 수 있습니다.
🇺🇸 원문 (English)
hpack is an HTTP/2 Header Encoding for Python. Prior to version 4.2.0, unbounded variable integer decoding can cause run-away computation on malformed input leading to O(n^2) runtime, effectively blocking further processing with large enough unsanitized input. A fix is available in python-hyper/hpack v4.2.0 to restricted variable integer decoding to uint32 to prevent run-away computation. As a workaround, sanitize input to hpack decoder for long sequences of `0xFF` values to prevent malicious use.
📍 영향받는 시스템
python-hyper/hpack version < 4.2.0
⚔️ 공격 벡터
조작된 HTTP/2 헤더(긴 0xFF 시퀀스 포함)를 전송하여 디코더의 연산 자원을 고갈시킴
🛡️ 대응 방법
hpack 라이브러리를 v4.2.0 이상으로 업데이트하거나, 입력값에서 긴 0xFF 시퀀스를 필터링함
🔧 검증 코드
출력된 Version이 4.2.0 미만이면 취약한 버전이 설치된 상태입니다.
pip show hpack | grep Version