보안동향

최신 보안정보를 신속하게 전해드립니다.

OpenSSL의 CVE-2024-12797 취약점, MITM 공격에 악용 우려

2025-02-12

📖 CVE-2024-12797 취약점 개요

2025년 2월 11일, OpenSSL의 취약점 CVE-2024-12797이 발표되었다. CVE-2024-12797은 OpenSSL이 인증되지 않은 서버와의 RFC 7250 핸드셰이크가 예상대로 중단되지 않는 고위험 취약점이다.

현재(25.02.12)까지 CVE-2024-12797의 CVSS 점수 및 POC는 공개되지 않은 상태이나, OpenSSL은 취약점의 심각도를 ‘높음’으로 판단하고 있다.

💣 CVE-2024-12797 취약점 설명

CVE-2024-12797 취약점은 RFC 7250 RPK(Raw Public Key, 원시 공개 키)를 사용하여 서버를 인증하는 클라이언트는 SSL_VERIFY_PEER 검증 모드가 설정된 경우 핸드셰이크가 예상대로 중단되지 않기 때문에 서버가 인증되지 않았다는 사실을 알아차리지 못할 수 있다.

해당 취약점을 악용하면, RPK를 사용하는 TLS 및 DTLS 연결은 클라이언트가 서버 인증 실패를 감지하지 못할 때 MITM(Man-in-the-Middle, 중간자 공격)에 취약할 수 있고 잠재적으로 데이터 침해 및 무단 액세스 등의 공격으로 이어질 수 있다.

RPK (Raw Public Key)는 X.509 인증서 없이 공개 키만을 이용하여 TLS/DTLS 연결을 인증하는 방식이다. RFC 7250에서 정의되었으며, 주로 IoT, 경량 네트워크 환경, 제한된 리소스 시스템에서 X.509 인증서 관리의 부담을 줄이기 위한 목적으로 사용된다.
SSL_VERIFY_PEER는 클라이언트가 서버의 인증서를 검증하는 모드이다.

📍 취약점 악용 시나리오

  1. 클라이언트와 서버가 RPK 방식을 사용하여 TLS연결을 설정
  2. 공격자가 클라이언트와 서버 간 트래픽을 가로챔
  3. 클라이언트에게 가짜 공개 키를 전달하여, 공격자를 정상 서버로 인식하게 만듦
  4. 클라이언트가 가짜 공개 키를 신뢰하고 TLS 연결 수립
  5. 공격자가 트래픽을 복호화 및 변조 가능

🌡️ 취약점 영향도 확인

RPK는 TLS 클라이언트와 TLS 서버 모두에서 기본적으로 비활성화되어 있다. 취약점은 TLS 클라이언트가 서버에서 명시적으로 RPK 사용을 사용하도록 설정하고 서버도 마찬가지로 X.509 인증서 체인 대신 RPK 전송을 사용하도록 설정하는 경우에만 발생한다.

📌 일반적인 X.509 기반 TLS(HTTPS 등) 환경에서는 해당 취약점의 영향을 받지 않음
📌 클라이언트가 SSL_get_verify_result()를 활용하여 서버의 공개 키를 수동 검증하는 경우 해당 취약점의 영향을 받지 않음

💥 CVE-2024-12797 취약점 영향 받는 버전

  • OpenSSL 3.2
  • OpenSSL 3.3
  • OpenSSL 3.4

? OpenSSL 3.0 ~ 3.4 버전의 FIPS 모듈취약점 영향을 받지 않음
? OpenSSL 1.0.2, 1.1.1, 3.0, 3.1 버전은 취약점 영향을 받지 않음

🛡️ CVE-2024-12797 취약점 보완 방법

  1. 취약점이 패치 된 버전으로 업그레이드
    • OpenSSL 3.2 사용자는 OpenSSL 3.2.4로 업그레이드
    • OpenSSL 3.3 사용자는 OpenSSL 3.3.2로 업그레이드
    • OpenSSL 3.4 사용자는 OpenSSL 3.4.1로 업그레이드

  2. RPK 대신 X.509 인증서 기반 검증 사용
    • RPK가 아닌 X.509 인증서를 활용하여 서버를 검증하면 해당 취약점의 영향을 받지 않음
  3. SSL_get_verify_result() 호출을 통한 인증 검증 강화
    • 애플리케이션에서 SSL_get_verify_result() 함수를 반드시 호출하여, 서버 인증이 실패한 경우 연결을 즉시 종료하도록 구현

목록