🇰🇷 한글 설명
Python 2.2.3부터 2.6 버전의 expandtabs() 메서드에서 tabsize 인자 처리 시 발생하는 정수 오버플로우 취약점입니다. 공격자가 악의적인 매우 큰 정수값을 전달하면 메모리 손상이나 시스템 크래시를 유발할 수 있습니다.
💡 쉬운 설명
Python의 문자열 처리 기능에서 매우 큰 숫자를 입력받을 때 계산 오류가 발생합니다. 이를 악용하면 프로그램이 동작하지 않거나 악의적인 코드가 실행될 수 있습니다.
🇺🇸 원문 (English)
Multiple integer overflows in Python 2.2.3 through 2.5.1, and 2.6, allow context-dependent attackers to have an unknown impact via a large integer value in the tabsize argument to the expandtabs method, as implemented by (1) the string_expandtabs function in Objects/stringobject.c and (2) the unicode_expandtabs function in Objects/unicodeobject.c. NOTE: this vulnerability reportedly exists because of an incomplete fix for CVE-2008-2315.
📍 영향받는 시스템
Python 2.2.3, 2.3.x, 2.4.x, 2.5.0-2.5.1, 2.6.0
⚔️ 공격 벡터
expandtabs() 메서드에 매우 큰 tabsize 값을 인자로 전달하여 메모리 오버플로우 트리거
🛡️ 대응 방법
Python을 2.6.4 이상 또는 3.0.1 이상으로 업그레이드
🔧 검증 코드
Python 버전이 2.5.1 이하이거나 2.6.3 이하면 취약함. 2.6.4 이상이면 패치됨.
python -c "import sys; print(f'Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}')"