🇰🇷 한글 설명
Python 2.5, 2.6, 3.0의 CGIHTTPServer 모듈에 있는 is_cgi 메서드의 결함으로 인해, 슬래시(/)가 없는 HTTP GET 요청을 통해 원격 공격자가 CGI 스크립트의 소스 코드를 읽을 수 있는 취약점입니다. 정상적인 GET 요청은 스크립트를 실행하지만, 슬래시가 없는 요청은 소스 코드를 노출시킵니다.
💡 쉬운 설명
Python 웹 서버 기능의 버그로 인해 특정 방식의 요청을 보내면 스크립트를 실행하는 대신 소스 코드를 볼 수 있게 되는 문제입니다. 이를 통해 공격자는 민감한 정보나 보안 약점을 발견할 수 있습니다.
🇺🇸 원문 (English)
The is_cgi method in CGIHTTPServer.py in the CGIHTTPServer module in Python 2.5, 2.6, and 3.0 allows remote attackers to read script source code via an HTTP GET request that lacks a / (slash) character at the beginning of the URI.
📍 영향받는 시스템
Python 2.5, 2.6, 3.0의 CGIHTTPServer 모듈 사용 시스템
⚔️ 공격 벡터
슬래시 문자 없는 URI로 HTTP GET 요청 (예: http://target.com?script.py 대신 http://target.com script.py)
🛡️ 대응 방법
Python을 2.7 이상의 3.1 이상 버전으로 업그레이드하거나 CGIHTTPServer 사용을 중단하고 더 안전한 웹 서버 사용
🔧 검증 코드
Python 2.5, 2.6 또는 3.0 버전이 설치되어 있으면 버전이 출력되며 취약한 상태이고, 아무것도 출력되지 않으면 안전한 버전입니다.
python --version 2>&1 | grep -E 'Python (2\.[5-6]|3\.0)'