🇰🇷 한글 설명
Ruby의 OpenSSL 인증서 검증 함수가 X.509 인증서의 Subject Alternative Name 필드에 포함된 Null 문자(\0)를 제대로 처리하지 못하는 취약점입니다. 공격자가 정상 인증기관에서 발급받은 조작된 인증서로 도메인 검증을 우회하여 중간자 공격(MITM)을 수행할 수 있습니다.
💡 쉬운 설명
Ruby 애플리케이션의 HTTPS 검증에 허점이 있어서 가짜 SSL 인증서를 신뢰하게 됩니다. 공격자가 네트워크 트래픽을 도청하고 조작할 수 있습니다.
🇺🇸 원문 (English)
The OpenSSL::SSL.verify_certificate_identity function in lib/openssl/ssl.rb in Ruby 1.8 before 1.8.7-p374, 1.9 before 1.9.3-p448, and 2.0 before 2.0.0-p247 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.
📍 영향받는 시스템
Ruby 1.8 (< 1.8.7-p374), Ruby 1.9 (< 1.9.3-p448), Ruby 2.0 (< 2.0.0-p247)
⚔️ 공격 벡터
정상 인증기관에서 발급한 인증서의 SAN 필드에 Null 문자를 삽입하여 도메인명 검증 우회
🛡️ 대응 방법
Ruby를 1.8.7-p374 이상, 1.9.3-p448 이상, 또는 2.0.0-p247 이상으로 업그레이드
🔧 검증 코드
Ruby 버전이 1.8.7-p374 미만, 1.9.3-p448 미만, 또는 2.0.0-p247 미만이면 취약함
ruby -v | grep -oE '1\.[89]\.|2\.0\.0-p' && echo 'Check version details for vulnerability'