🇰🇷 한글 설명
Zamboni의 컨트리뷰션 기능이 X.509 인증서의 CN 또는 subjectAltName 필드를 서버 호스트명과 검증하지 않으며, Python urllib2 라이브러리의 호스트명 검증 부재로 인해 임의의 유효한 인증서로 SSL 서버를 스푸핑할 수 있게 한다.
💡 쉬운 설명
HTTPS 연결 시 실제로 접속한 서버가 맞는지 확인하지 않아 공격자가 정상 인증서를 악용한 위조 서버로 통신을 가로챌 수 있다. 사용자는 가짜 서버에 로그인하거나 민감한 정보를 전송할 수 있다.
🇺🇸 원문 (English)
The contribution feature in Zamboni does not verify that the server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate, related to use of the Python urllib2 library.
📍 영향받는 시스템
Zamboni (Mozilla 애드온 마켓플레이스 플랫폼) - urllib2를 사용하는 모든 버전
⚔️ 공격 벡터
네트워크 중간에 위치하여 DNS 또는 라우팅 조작으로 트래픽을 가로치고 유효한 SSL 인증서로 위조 서버 구성
🛡️ 대응 방법
urllib2 사용 중단 및 requests 라이브러리로 마이그레이션 또는 ssl.create_default_context() 등으로 인증서 검증 강제
🔧 검증 코드
출력이 'Secure'이면 SSL 호스트명 검증이 활성화된 상태, 'Insecure'면 미흡한 검증 상태를 의미
python3 -c "import ssl; ctx = ssl.create_default_context(); print('Secure' if ctx.check_hostname else 'Insecure')" 2>/dev/null