[분석가] 분석 — CVE-2026-63035
CVE-2026-63035 is a high‑severity heap use‑after‑free in open62541’s TransferSubscriptions service that can be leveraged by an authenticated attacker to cause denial of service or remote code execution, and the immediate priority is to apply the upstream patch and restrict access to the service.
📋 요약
- 심각도 high · CVSS 8.1 · EPSS 미확보 · 악용난이도 moderate
🔍 공격 기법
인증된 클라이언트가 조작된 TransferSubscriptions 요청을 전송하면 힙에 할당된 객체가 해제된 뒤 동일 메모리 영역이 재사용되는 상황을 유발합니다. 이때 서버는 잘못된 포인터를 참조하여 크래시(DoS)하거나, 공격자가 삽입한 악의적 코드 흐름으로 전환될 수 있습니다. 인증만 요구되며 추가적인 사용자 입력은 필요하지 않습니다(UI:N).
악용 가능성: AV:N/AC:L/PR:L/UI:N 벡터는 공격자가 네트워크를 통해 직접 접근 가능한 TransferSubscriptions 서비스 엔드포인트에 접속해, 복잡한 사전 준비 없이 인증된 계정(예: 일반 사용자 권한)만으로도 이용할 수 있음을 의미합니다. 실제 조건에서는 OPC UA TCP 포트(일반적으로 4840)와 같은 공개된 프로토콜이 노출되어 있어, 해당 서비스가 실행 중인 시스템이라면 원격에서 요청을 전송하는 것만으로 취약점에 도달할 수 있습니다. 인증이 요구되지만 권한 수준이 낮아도 충분히 악용 가능하므로, 내부 사용자 계정 탈취나 기본 자격 증명 사용 시 공격 난이도는 “낮음”이라고 평가됩니다. EPSS 점수가 제공되지 않았고 KEV 목록에도 등재되지 않아 현재까지 대규모 야생 익스플로잇 사례는 관측되지 않지만, 네트워크 기반·저복잡도·인증 필요 조건만으로도 실제 위협이 존재함을 판단 근거로 삼습니다. 이 취약점은 힙 Use‑After‑Free 오류를 트리거하여 서비스 거부(DoS)와 더불어 메모리 조작을 통한 임의 코드 실행 가능성을 제공하므로, 공격 표면은 TransferSubscriptions 서비스가 처리하는 구독 전송 요청 파라미터와 해당 API 호출 경로 전체에 걸쳐 있습니다. 따라서 인증된 사용자가 접근 가능한 모든 OPC UA 서버가 잠재적 타깃이 되며, 네트워크 노출 수준과 권한 요구조건을 고려할 때 공격 가능성은 “중간” 정도로 평가됩니다.
💥 영향 분석
- 기술적 위험
- 힙 use‑after‑free 로 인해 open62541 기반 OPC UA 서버가 비정상 종료하여 서비스 가용성이 상실됩니다(C).
- 오류가 성공적으로 악용될 경우 임의 코드 실행(I) 및 권한 상승(A)이 가능하나, 현재 공개된 증거는 제한적입니다.
- 비즈니스 영향
- OPC UA를 핵심 통신 프로토콜로 사용하는 산업 자동화·제조 설비에서 가용성 손실은 생산 라인 중단 및 SLA 위반 위험을 초래합니다.
- 전력·의료 등 규제가 엄격한 분야에서는 서비스 지속성이 법적·컴플라이언스 요구사항과 연결되어 추가적인 책임이 발생할 수 있습니다.
- 영향 제품·노출 규모
- 취약점은 open62541 라이브러리를 포함하는 모든 OPC UA 서버에 존재합니다(구체적인 상용 제품명은 현재 미상).
- 해당 서비스가 외부 네트워크에 노출된 경우 공격 표면이 넓어지며, 내부망에 제한된 경우에도 인증된 계정이 확보되면 위험이 존재합니다.
🔗 관련 취약점·체이닝
open62541에서 보고된 다른 메모리 관리 오류(예: heap overflow, double‑free)와 유사한 패턴을 공유하므로, 동일 라이브러리를 이용하는 추가 CVE와 연계해 권한 상승이나 내부 이동 경로를 구축할 가능성이 있습니다.
🔎 탐지
- OPC UA 서버 로그에
TransferSubscriptions요청 직후 “invalid free”, “segmentation fault”, “use‑after‑free” 와 같은 메시지가 반복적으로 기록되는 경우. - IDS/IPS에서
TransferSubscriptions서비스 ID(예: 0x??)와 비정상적인 페이로드 길이(> 1024 bytes 등)를 매칭하는 시그니처. 예시 정규식:\bTransferSubscriptions\b.*\b(payload\s+size:\s+(?:[1-9]\d{3,}|[2-9]\d{2})\b) - 메모리 할당/해제 트레이스를 제공하는 ASAN·Valgrind 등에서
use‑after‑free이벤트가 발생하면 알림을 전송하도록 설정.
🛡️ 완화 방안
- 즉시 조치
- 공급업체가 배포한 패치를 신속히 적용하거나, open62541를 최신 안정 버전으로 업데이트합니다.
TransferSubscriptions서비스에 대한 접근을 인증된 클라이언트로 제한하고, 토큰 검증 로직을 강화하여 최소 권한 원칙을 적용합니다.- 방화벽·ACL을 활용해 해당 서비스 포트를 내부망에서 필요 최소 범위만 허용하고, 네트워크 세분화를 통해 외부 노출을 차단합니다.
- 장기 해결
- 라이브러리를 메모리 안전 옵션(예:
-fsanitize=address,-fno-exceptions)이나 메모리‑안전 언어(Rust 등)로 재컴파일하여 근본적인 use‑after‑free 를 방지합니다. - 운영 단계에서 비정상적인 메모리 할당·해제 로그와 서비스 크래시를 실시간 모니터링하고, 이상 징후 발생 시 자동으로 알림 및 차단 조치를 수행하도록 SIEM 룰을 구축합니다.
- 라이브러리를 메모리 안전 옵션(예:
우선순위 판단 근거: 다중 소스에서 CVSS 8.1·벡터·심각도(High)가 일관되게 확인됐으며, KEV에 등재되지 않았고 EPSS는 제공되지 않아 실제 악용 가능성은 불명확하지만 “moderate” 수준의 exploitability가 평가되었습니다. 따라서 규칙 기반으로 이번 주 내 scheduled 조치를 권장합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.1 · non-KEV · EPSS=미확보 · exploit=moderate · in_scope=None