🇰🇷 한글 설명
Python의 urllib/urllib2 라이브러리의 HTTPConnection.putheader 함수에서 발생하는 CRLF 인젝션 취약점으로, URL에 포함된 캐리지 리턴과 라인 피드(CRLF) 문자를 이용하여 임의의 HTTP 헤더를 주입할 수 있습니다. 공격자는 이를 이용해 HTTP 응답 분할(HTTP Response Splitting) 공격을 수행하거나 캐시 포이즈닝 등의 추가 공격을 시도할 수 있습니다.
💡 쉬운 설명
Python에서 인터넷에서 데이터를 받을 때 사용하는 라이브러리에 특수문자 처리 결함이 있습니다. 악의적인 웹 주소를 통해 원하지 않는 추가 정보를 HTTP 요청에 끼워 넣을 수 있습니다.
🇺🇸 원문 (English)
CRLF injection vulnerability in the HTTPConnection.putheader function in urllib2 and urllib in CPython (aka Python) before 2.7.10 and 3.x before 3.4.4 allows remote attackers to inject arbitrary HTTP headers via CRLF sequences in a URL.
📍 영향받는 시스템
Python 2.7.10 이전, Python 3.4.4 이전 버전
⚔️ 공격 벡터
CRLF 문자(\r\n)를 포함한 악의적인 URL을 HTTPConnection에 전달하여 HTTP 헤더 주입
🛡️ 대응 방법
Python을 2.7.10 이상 또는 3.4.4 이상 버전으로 업그레이드
🔧 검증 코드
Python 2.7.10 미만 또는 3.4.4 미만 버전이 출력되면 취약하며, 권장 버전 이상이면 안전합니다.
python --version 2>&1 | grep -oE '(2\.7\.[0-9]|3\.[0-3)\.)' && echo 'Vulnerable' || echo 'Check version'