🔍 CVE-2018-16395

9.8
CVSS Score
CRITICAL
2018-11-16
2026-06-17 01:44
✅ 완료

🇰🇷 한글 설명

Ruby의 OpenSSL 라이브러리에서 두 OpenSSL::X509::Name 객체를 비교할 때 발생하는 논리적 오류입니다. 특정 조건에서 서로 다른 객체가 동일한 것으로 잘못 판정될 수 있으며, 이를 통해 위조된 인증서가 유효한 것으로 인식될 위험이 있습니다.

💡 쉬운 설명

서로 다른 두 인증서가 마치 같은 인증서인 것처럼 컴퓨터를 속일 수 있는 보안 결함입니다. 공격자가 가짜 인증서를 만들어 정상적인 인증서인 척 위장하여 데이터를 가로챌 수 있습니다.

🇺🇸 원문 (English)

An issue was discovered in the OpenSSL library in Ruby before 2.3.8, 2.4.x before 2.4.5, 2.5.x before 2.5.2, and 2.6.x before 2.6.0-preview3. When two OpenSSL::X509::Name objects are compared using ==, depending on the ordering, non-equal objects may return true. When the first argument is one character longer than the second, or the second argument contains a character that is one less than a character in the same position of the first argument, the result of == will be true. This could be leveraged to create an illegitimate certificate that may be accepted as legitimate and then used in signing or encryption operations.

📍 영향받는 시스템

Ruby 2.3.8 미만, 2.4.x(2.4.5 미만), 2.5.x(2.5.2 미만), 2.6.x(2.6.0-preview3 미만) 버전

⚔️ 공격 벡터

특정 문자열 길이나 구성이 다른 X509 Name 객체를 비교 연산자(==)로 비교하여 인증서 검증을 우회함

🛡️ 대응 방법

Ruby 버전을 보안 패치가 적용된 최신 버전(2.3.8, 2.4.5, 2.5.2, 2.6.0-preview3 이상)으로 업데이트하십시오.

🔧 검증 코드

출력된 Ruby 버전을 확인하여 취약점이 존재하는 버전 범위에 해당하는지 대조합니다.

Shell / Script
ruby -v

📊 CVSS Vector String

CVSS Vector
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

OpenSSL