🇰🇷 한글 설명
Tornado 웹 프레임워크의 gzip 압축 해제 루틴에서 압축 해제된 데이터의 전체 크기에 대한 제한이 없어 발생하는 메모리 고갈 취약점입니다. SimpleAsyncHTTPClient를 사용하거나 decompress_request=True로 설정된 HTTPServer를 통해 악의적인 서버에 접속할 경우 무제한의 메모리 소비가 가능합니다.
💡 쉬운 설명
압축된 파일을 풀 때 전체 크기를 확인하지 않아, 아주 작은 파일로도 컴퓨터의 메모리를 가득 채워 시스템을 멈추게 할 수 있는 문제입니다. 공격자가 조작된 데이터를 보내면 서버의 메모리가 바닥나 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.6, Tornado gzip decompression routines processed limited-size chunks but did not enforce an overall limit on accumulated decompressed chunks, allowing a malicious server accessed by SimpleAsyncHTTPClient or an HTTPServer configured with decompress_request=True to consume effectively unlimited memory. This issue is fixed in version 6.5.6.
📍 영향받는 시스템
Tornado version < 6.5.6
⚔️ 공격 벡터
악의적인 서버로부터 압축 해제 제한이 없는 데이터를 수신하여 메모리 점유
🛡️ 대응 방법
Tornado 버전을 6.5.6 이상으로 업데이트
🔧 검증 코드
출력된 Tornado의 버전이 6.5.6 미만인지 확인합니다.
pip show tornado | grep Version