[공격] 분석 — CVE-2026-35188
CVE-2026-35188 allows a malicious TLS server to trigger a double‑free in OpenSSL 3.6.x clients via crafted OCSP stapling, leading to heap corruption and denial‑of‑service.
📋 요약
- 심각도 medium · CVSS 5.0 · EPSS 0.00302 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건: 클라이언트가 OpenSSL 3.6.0‒3.6.3을 사용하고
OCSP stapling(status_request extension)을 활성화한 상태에서, 악의적인 TLS 서버와 네트워크(N) 연결을 시도할 때 발생합니다. - 입력·요청: 서버가 TLS 핸드쉐이크 중
CertificateStatus메시지에 비정상적으로 조작된 OCSP 응답을 포함시켜 전송합니다. 이 응답이 클라이언트의 인증서 검증 루틴으로 전달되면, 내부 구조체가 두 번 해제(double‑free)됩니다. - 공격 단계
1️⃣ 정찰 – 대상 환경에서 OpenSSL 3.6.x 사용 여부와 OCSP stapling 설정을 탐지합니다(예: 구성 파일, 애플리케이션 로그).
2️⃣ 초기 접근 – 공격자는 악성 TLS 서버를 배포하고, 목표 클라이언트가 해당 서버에 접속하도록 DNS/프록시 위조 등으로 유도합니다.
3️⃣ 실행 – 조작된 OCSP stapled response를 전송해 double‑free 를 일으킵니다. 복잡도는AC:H(높은 난이도)이며, 공격자는 낮은 권한(PR:L)만 필요합니다.
4️⃣ 영향 – 힙 메모리가 손상되어 프로세스가 비정상 종료(Denial‑of‑Service)하거나, 환경에 따라 임의 코드 실행 가능성이 존재하지만 구현 난이도가 높아 실제 RCE는 추정 수준입니다. - 공격 표면: TLS 클라이언트 라이브러리 호출(
SSL_connect등),status_request확장 처리 루틴, OCOCSP 응답 파싱/검증 함수. - CVSS 연계: 네트워크 기반(AV:N)·고난이도(AC:H)·낮은 권한 요구(PR:L)·사용자 상호작용 없음(UI:N)·기밀성·무결성·가용성 모두 낮음(C/L/I/L/A/L)으로, 실제 공격에서는 가용성 손실이 주된 결과입니다.
악용 가능성: 이 취약은 네트워크를 통한 원격 공격(AV = Network)이며, 성공하려면 공격자는 TLS 클라이언트가 OCSP stapling을 활성화한 상태에서 악성 서버와의 핸드쉐이크를 강제해야 합니다. CVSS AC = High는 “crafted OCSP stapled response”를 정확히 구성하고, 특정 OpenSSL 버전·구성(예: 메모리 할당 패턴) 등 환경에 맞춰 double‑free 트리거를 재현하는 데 높은 기술적 복잡성이 필요함을 의미합니다. PR = Low는 공격자가 클라이언트 권한이 낮아도 이용 가능하지만, 이는 클라이언트가 해당 서버에 연결하도록 허용되는 일반적인 상황(예: 자동 업데이트·API 호출)에서만 성립합니다. UI = None은 사용자의 직접적인 동작 없이 네트워크 요청만으로 발동되므로, 사용자 피싱 등 추가 단계는 요구되지 않습니다. EPSS 0.00302(≈0.3 %)와 KEV 미등재는 현재 실제 악용 사례가 거의 없으며, 공격 성공 확률이 낮은 편임을 보여주지만, 공개된 취약점 자체가 존재하므로 위험도가 완전히 무시될 수 없습니다. 따라서 주요 공격 표면은 TLS 핸드쉐이크 중 status_request 확장과 OCSP stapled 응답을 파싱·검증하는 코드 경로이며, 이 엔드포인트에 악성 서버가 제공하는 조작된 응답을 전달할 경우 힙 메모리 손상이 발생해 DoS 혹은 환경에 따라 제한적인 임의 코드 실행이 가능하게 됩니다.
💥 영향 분석
- 성공 시 클라이언트 프로세스가 비정상 종료하여 서비스 이용이 차단됩니다(DoS).
- 메모리 손상이 심각한 경우, 특정 환경에서 임의 코드 실행 가능성이 존재하나 이는 구현·배포 환경에 크게 좌우되는 고난이도 시나리오입니다.
🔗 관련 취약점·체이닝
- 유형: CWE‑415(Double Free) → Heap Corruption → Denial of Service / Potential RCE.
- 가능한 체인: 동일 프로세스 내 메모리 손상을 이용해 기존의 메모리 관리 취약점(CWE‑416 Use After Free)이나 포인터 검증 결함과 연계하면, 공격자는 임시 파일/소켓 핸들 탈취 등 추가 권한 상승을 시도할 수 있습니다.
- 현재 공개된 다른 CVE와 직접적인 연관은 확인되지 않았으며, 추정: 동일 OpenSSL 버전에서 발견된 메모리 관리 결함과 조합될 경우 공격 복잡도가 감소할 가능성이 있습니다.
🔎 탐지
- TLS 핸드쉐이크 로그에
CertificateStatus메시지가 비정상적인 길이·형식(예: 과도하게 큰 OCSP 응답)으로 기록되는 경우 경고를 발생시킵니다. - OpenSSL 디버그 레벨에서
double free혹은heap corruption오류가 발생하면 시스템 로그에OPENSSL_internal_error가 남습니다.
🛡️ 완화 방안
1️⃣ 즉시 조치: OCSP stapling을 비활성화(SSL_CTX_set_status_request 호출 차단)하거나, 해당 옵션이 기본값으로 비활성화된 버전(3.6.x 이전)으로 다운그레이드합니다.
2️⃣ 패치 적용: OpenSSL 공급자가 제공하는 보안 업데이트가 공개될 경우 즉시 적용하십시오. 현재는 공식 패치가 없으므로 모니터링이 필요합니다.
3️⃣ 구성 검토: 클라이언트 애플리케이션에서 SSL_OP_NO_TICKET 등 불필요한 확장 비활성화와 함께, 신뢰할 수 없는 서버에 대한 TLS 연결 제한 정책을 강화합니다.
4️⃣ 모니터링: [우선순위 결정]에 따라 “monitor” 수준으로 취약성을 지속 감시하고, EPSS 0.00302(실제 악용 확률이 낮음)와 교차검증 결과(다중 소스에서 일관성 확인) 를 근거로 위험도를 재평가하십시오.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.0 · non-KEV · EPSS=0.00302 · exploit=hard · in_scope=None