[단독공격] 분석 — CVE-2026-65423
CVE-2026-65423 enables a remote attacker to trigger an out‑of‑bounds memory write in the open62541 OPC UA stack via integer overflow in UA_Variant handling; immediate patch or strict input validation is required.
📋 요약
- 심각도 high · CVSS 8.8 · EPSS 미확보 · 악용난이도 moderate
🔍 공격 기법
-
공격 표면
- OPC UA 서비스 (Write, Read, Browse 등)에서
Variant타입을 받는 모든 메서드. - 입력 파라미터:
arrayDimensions배열(다차원 배열의 각 차원 크기).
- OPC UA 서비스 (Write, Read, Browse 등)에서
-
전제 조건
- 대상 서버가 open62541 라이브러리를 사용하고, 네트워크를 통해 OPC UA 엔드포인트(
opc.tcp://…)가 공개돼 있음. (AV:N / AC:L / PR:L / UI:N→ 인증·사용자 입력 없이 원격에서 가능)
- 대상 서버가 open62541 라이브러리를 사용하고, 네트워크를 통해 OPC UA 엔드포인트(
-
정찰
GetEndpoints호출로 OPC UA 서버 주소와 지원 프로파일을 확인.- 서비스 메타데이터(
ReadofNamespaceArray,ServerCapabilities)를 통해Write등 변형을 받을 수 있는 노드를 식별.
-
초기 접근
Write요청에Variant값으로 다차원 배열을 삽입.- 각 차원의 크기를 조합해 곱(
product = dim1 * dim2 * …)이uint32_t범위를 초과하도록 설계(예:0xFFFFFFFF * 2). - open62541 내부에서
arrayDimensions곱을 계산할 때 정수 오버플로가 발생 → 잘못된 버퍼 크기 판단.
-
실행·권한 획득
- 잘못된 버퍼 길이로 데이터를 복사하면서 out‑of‑bounds write가 일어나 메모리 구조를 손상.
- 힙/스택 오버플로를 이용해 제어 흐름을 조작하면 원격 코드 실행(RCE) 가능.
- 프로세스가 시스템 서비스·PLC와 연동돼 있으면 해당 권한으로 명령 수행.
-
지속
- 성공적인 RCE 후 악성 모듈(예: DLL/so) 로드, 서비스 재시작 스크립트 삽입 등으로 영구화 가능.
-
영향
- 기밀·무결·가용성 모두 심각(C:H/I:H/A:H).
- 산업 제어 시스템에서 장비 오동작·데이터 유출·서비스 중단 위험이 큼.
[교차검증] 다중 소스에서 일관성이 확인됐으며, 보수적으로 높은
high심각도가 채택되었습니다.
악용 가능성: 이 취약은 네트워크를 통해 직접 접근 가능한 OPC UA 엔드포인트에 존재하는 UA_Variant 배열 차원 계산 로직에서 정수 오버플로우가 발생할 수 있다는 점에서, AV:N(Network)·AC:L(Low complexity)·PR:L(Low privileges)·UI:N(No user interaction) 조건을 그대로 만족합니다. 공격자는 OPC UA 서버에 노출된 서비스(예: Read, Write, Browse 등) 중 배열 차원을 파라미터로 전달받는 메서드에 비정상적으로 큰 값들을 포함한 요청을 전송하면, 내부에서 차원 곱을 계산할 때 32‑bit 정수 오버플로우가 일어나 메모리 경계 밖으로 쓰기가 발생합니다. 이때 요구되는 권한은 일반적인 클라이언트 수준(읽기/쓰기)만이면 되므로 PR:L 조건이 충족되며, 추가적인 사용자 조작 없이 자동화된 스크립트로 반복 전송할 수 있어 UI:N에 부합합니다. EPSS가 아직 제공되지 않았고 KEV 리스트에도 포함되지 않아 현재 활발한 악용 사례는 보고되지 않았지만, 낮은 복잡도와 원격 네트워크 접근만으로 실행 가능하다는 점이 실제 위협성을 높이는 근거입니다. 따라서 공격 표면은 OPC UA 프로토콜을 통해 노출되는 Variant 배열 파라미터를 받는 모든 메서드와 그 엔드포인트이며, 해당 요청을 가공할 수 있는 네트워크 경로가 확보된 경우 상대적으로 쉬운 난이도로 악용될 가능성이 존재합니다.
💥 영향 분석
- 원격 코드 실행을 통해 공격자는 OPC UA 서버가 구동되는 호스트를 완전 장악할 수 있습니다.
- 제어 시스템(PLC, SCADA)과 직접 연결된 경우 물리 설비 조작·정지·파괴까지 확장될 위험이 존재합니다.
🔗 관련 취약점·체이닝
- 유형: 정수 오버플로 → 메모리 손상 → 원격 코드 실행 (CWE‑190, CWE‑681).
- 일반적 체인 패턴
- 입력 검증 부재 → 정수 오버플로 발생.
- 메모리 영역 외 쓰기 → 힙/스택 손상.
- 제어 흐름 하이재킹 → RCE.
- 추정: 다른 OPC UA 구현체에서 발견된 인증 우회(CVE‑2024‑XXXX)와 결합하면, 먼저 인증을 회피하고 본 오버플로를 이용해 권한 상승이 가능할 것으로 보입니다(구체적인 CVE 번호는 확인되지 않음).
🔎 탐지
- OPC UA 트래픽 로그에서
Write/Read요청에 포함된arrayDimensions값이 비정상적으로 큰 경우(> 0xFFFF등) 알림. - 서버 측 메모리 접근 오류·크래시 덤프 발생 시 자동 수집.
- HIDS/EDR에서 out‑of‑bounds write 패턴(예:
memcpy이후 주소가 할당 영역을 벗어남) 감지 규칙 적용.
🛡️ 완화 방안
-
즉시 조치
- open62541 최신 릴리즈로 업데이트(패치 포함 여부 확인).
- 방화벽·네트워크 세분화를 통해 OPC UA 엔드포인트 접근을 신뢰된 IP만 허용.
- OPC UA 서버 프로세스를 최소 권한 계정으로 실행.
-
근본 해결
arrayDimensions곱 연산에 안전한 정수 연산(checked arithmetic) 적용하거나, 차원 수·크기 상한을 명시적으로 검증.- 컴파일 옵션(
-fstack-protector,-D_FORTIFY_SOURCE=2)과 주소 무작위화(ASLR)를 활성화해 메모리 손상 활용 난이도 감소.
[실측 악용예측] EPSS 데이터는 제공되지 않았으나, 규칙 기반으로 “moderate” 수준의 악용 가능성이 평가되었습니다.
[우선순위 결정] CVSS 8.8·non‑KEV·EPSS 미확보·exploit = moderate·in_scope = None을 근거로 이번 주 내scheduled대응이 권장됩니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.8 · non-KEV · EPSS=미확보 · exploit=moderate · in_scope=None