🇰🇷 한글 설명
Python 3.2.x, 3.3.x 및 이전 버전의 ssl.match_hostname 함수에서 발견된 알고리즘 복잡도 취약점입니다. 인증서의 CN(Common Name)에 여러 개의 와일드카드 문자를 포함시켜 호스트명 검증 과정에서 과도한 CPU 소비를 유발하는 서비스 거부 공격이 가능합니다.
💡 쉬운 설명
Python의 보안 기능이 특정 형태의 악의적인 인증서를 처리할 때 매우 느려지는 문제입니다. 공격자가 이를 악용하여 시스템의 CPU를 과다 사용시켜 웹 서비스나 애플리케이션을 중단시킬 수 있습니다.
🇺🇸 원문 (English)
Algorithmic complexity vulnerability in the ssl.match_hostname function in Python 3.2.x, 3.3.x, and earlier, and unspecified versions of python-backports-ssl_match_hostname as used for older Python versions, allows remote attackers to cause a denial of service (CPU consumption) via multiple wildcard characters in the common name in a certificate.
📍 영향받는 시스템
Python 3.2.x, 3.3.x 및 이전 버전, python-backports-ssl_match_hostname 패키지
⚔️ 공격 벡터
원격 공격자가 다중 와일드카드 문자가 포함된 악의적인 SSL/TLS 인증서를 제공하여 클라이언트의 호스트명 검증 과정에서 CPU 리소스 고갈 유발
🛡️ 대응 방법
Python 3.2.3, 3.3.2 이상으로 업그레이드하거나 python-backports-ssl_match_hostname을 최신 버전으로 패치 적용
🔧 검증 코드
출력에서 Python 버전이 3.2.3 이상, 3.3.2 이상, 또는 2.7.9 이상이면 패치된 버전입니다. 'Vulnerable'이 표시되면 업그레이드 필요합니다.
python3 -c "import ssl, sys; print(f'Python {sys.version}'); print('Patched' if sys.version_info >= (3,3,2) or sys.version_info >= (2,7,9) else 'Vulnerable')"