🇰🇷 한글 설명
CPython의 httplib, urllib, urllib2, xmlrpclib 라이브러리에서 HTTPS 접속 시 서버 인증서를 신뢰저장소와 비교하거나 호스트명을 검증하지 않는 결함이 있습니다. 이로 인해 중간자 공격자가 임의의 유효한 인증서로 SSL 서버를 위장할 수 있습니다.
💡 쉬운 설명
Python의 인터넷 연결 기능이 접속하는 웹사이트가 진짜인지 확인하지 않습니다. 해커가 가짜 인증서로 사용자를 속여 중요한 정보를 탈취할 수 있습니다.
🇺🇸 원문 (English)
The HTTP clients in the (1) httplib, (2) urllib, (3) urllib2, and (4) xmlrpclib libraries in CPython (aka Python) 2.x before 2.7.9 and 3.x before 3.4.3, when accessing an HTTPS URL, do not (a) check the certificate against a trust store or verify that the server hostname matches a domain name in the subject's (b) Common Name or (c) subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate.
📍 영향받는 시스템
Python 2.7.9 미만, Python 3.4.3 미만 (httplib, urllib, urllib2, xmlrpclib)
⚔️ 공격 벡터
중간자 공격으로 HTTPS 트래픽을 가로채서 위조된 인증서로 서버 위장
🛡️ 대응 방법
Python 2.7.9 이상, 3.4.3 이상으로 업그레이드하거나 SSL 인증서 검증을 명시적으로 활성화
🔧 검증 코드
설치된 Python 버전이 2.7.9 이상(2.x대) 또는 3.4.3 이상(3.x대)이면 패치됨
python --version 2>&1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -1