🔍 CVE-2013-4238

4.3
CVSS Score
MEDIUM
2013-08-18
2026-04-29 01:13
✅ 완료

🇰🇷 한글 설명

Python의 ssl.match_hostname 함수가 X.509 인증서의 SubjectAlternativeName 필드에서 null 문자(\0)를 올바르게 처리하지 못해 발생하는 취약점입니다. 정상 인증기관에서 발급한 위조된 SSL 인증서를 통해 공격자가 중간자 공격을 수행하고 임의의 SSL 서버를 위장할 수 있습니다.

💡 쉬운 설명

Python이 SSL 보안 인증서를 검증할 때 특수한 문자 처리 방식의 결함으로, 공격자가 위조된 인증서로 사용자의 연결을 가로챌 수 있습니다. 피해자는 위조된 서버를 정상 서버로 착각하고 민감한 정보를 입력하게 됩니다.

🇺🇸 원문 (English)

The ssl.match_hostname function in the SSL module in Python 2.6 through 3.4 does not properly handle a '\0' character in a domain name in the Subject Alternative Name field of an X.509 certificate, which allows man-in-the-middle attackers to spoof arbitrary SSL servers via a crafted certificate issued by a legitimate Certification Authority, a related issue to CVE-2009-2408.

📍 영향받는 시스템

Python 2.6, 2.7.x, 3.0, 3.1, 3.2, 3.3, 3.4

⚔️ 공격 벡터

정상 인증기관(CA)에서 발급받은 위조 SSL 인증서를 이용한 중간자(MITM) 공격으로 임의 서버 위장

🛡️ 대응 방법

Python을 2.7.9 이상 또는 3.4.3 이상으로 업그레이드하여 ssl.match_hostname 함수 수정사항 적용

🔧 검증 코드

출력 결과가 'vulnerable'이면 해당 버전에 CVE-2013-4238이 존재하며, 'patched'이면 패치된 버전으로 안전합니다.

Shell / Script
python -c "import sys; v=sys.version_info; print('vulnerable' if (v[0]==2 and v[1]<9) or (v[0]==3 and v[1]<5) else 'patched')"

📊 CVSS Vector String

CVSS Vector
AV:N/AC:M/Au:N/C:N/I:P/A:N

💻 영향받는 소프트웨어

Python