[공격] 분석 — CVE-2026-65421
CVE-2026-65421 allows unauthenticated attackers to crash the IEC 61850 MMS service via a malformed BER length field, resulting in immediate denial‑of‑service.
📋 요약
- 심각도 medium · CVSS 6.5 · EPSS 미확보 · 악용난이도 moderate
🔍 공격 기법
- 공격 표면: libiec61850가 제공하는 MMS 서비스(보통 TCP 102 포트)에서 BER 인코딩된 PDU를 수신할 때 발생.
- 트리거 조건: 공격자는 고정 길이(Boolean/Integer) 필드에 비정상적으로 큰
length값을 포함한 BER 객체를 전송한다. 디코더는 이 값을 검증하지 않아 힙 버퍼 끝을 넘어 읽게 되고, 프로세스가 비정상 종료된다. - 단계
1️⃣ 정찰 – IEC 61850‑MMS 포트(102) 개방 여부와 libiec61850 사용 여부를 네트워크 스캔·프로토콜 핸드쉐이크(MMS Association Request)로 확인한다.
2️⃣ 초기 접근 – 위조된 MMS PDU에berLength필드를 조작해 전송한다(AV = Adjacent, AC = Low). 인증이 필요 없으며 사용자 개입도 요구되지 않는다(PR = None, UI = None).
3️⃣ 실행 – 디코더가 길이 검증을 건너뛰면서 힙 버퍼를 초과 읽고, 서비스 프로세스가 강제 종료된다.
4️⃣ 지속·권한 획득 – 해당 취약점은 가용성 파괴만을 목표로 하므로 지속이나 권한 상승 단계는 존재하지 않는다.
5️⃣ 영향 – MMS 서비스 전체가 중단되어 전력/자동화 설비의 실시간 제어가 불가능해진다(CVSS 벡터에서 A:H).
근거: 다중 소스에서 일관성이 확인됐으며([교차검증] “다중 소스 데이터 일관성 확인됨”), CVSS 벡터와 공격 조건이 직접 매핑된다.
악용 가능성: AV가 Adjacent Network으로 정의되었으므로 공격자는 동일 LAN 또는 광역 네트워크 내에서 MMS 서비스(일반적으로 TCP 102)까지 도달할 수 있어야 합니다. AC가 Low이므로 특수한 권한이나 복잡한 전처리 없이도 길이값을 조작한 BER 메시지를 구성해 전송하면 되며, PR이 None이기에 사전 인증이 필요하지 않고 UI가 None이라 사용자 개입 역시 요구되지 않습니다. 이러한 전제조건은 “인접 네트워크에 존재하는 공격자”에게는 비교적 낮은 난이도로 작용하지만, KEV에 등재되지 않았고 EPSS 점수가 제공되지 않은 점을 보면 현재까지 실전 악용 사례가 드물어 위협도는 moderate 수준으로 평가됩니다. 트리거 조건은 MMS BER 디코더가 고정‑폭 BER 필드(BOOLEAN/INTEGER)에서 전달된 length 값을 검증하지 않아 힙 버퍼를 초과 읽게 되는 점이며, 이는 서비스 프로세스의 비정상 종료로 이어지는 DoS 효과만을 발생시킵니다. 공격 표면은 MMS 서버가 수신하는 모든 BER‑인코딩 메시지와, 특히 길이 필드가 포함된 Boolean·Integer 파라미터를 처리하는 decodeFixedWidthField 함수에 노출됩니다. 따라서 탐색 단계에서 포트 102(또는 해당 서비스 포트)를 확인한 뒤, 조작된 BER 페이로드를 전송하면 별도의 권한 상승이나 지속성 확보 없이도 즉시 서비스 거부 상태를 만들 수 있습니다.
💥 영향 분석
- 서비스 프로세스 비정상 종료 → MMS 통신 전체 중단.
- 자동화 시스템(예: 변전소, 공장 라인)에서 실시간 제어 손실·운영상 차질 발생.
- 데이터 무결성·기밀성은 영향을 받지 않음(C = N, I = N).
🔗 관련 취약점·체이닝
- 유형: CWE‑125 (Out‑of‑bounds Read) → 메모리 손상에 기반한 DoS.
- 가능한 체인: 동일 프로세스 내 다른 메모리 손상 결함(CWE‑787 등)이 존재한다면, 본 버퍼 오버‑리드가 트리거된 뒤 추가적인 코드 실행(RCE)으로 이어질 수 있다(추정).
- 현재 알려진 직접 연계 CVE는 없으며, 주로 동일 라이브러리의 다른 입력 검증 결함과 조합될 가능성이 존재한다.
🔎 탐지
- 시그니처: MMS PDU에서 고정‑폭 BER 필드(
boolean/integer)의length값이 정의된 최대값(예: 1 byte)보다 크게 나타나는 패킷을 IDS/IPS가 경고하도록 설정. - 로그: libiec61850 프로세스 비정상 종료·재시작 이벤트, “Segmentation fault” 혹은 “invalid read” 메시지.
- 행위: 짧은 시간 내 동일 클라이언트 IP에서 다수의 malformed MMS Association Request가 발생.
🛡️ 완화 방안
1️⃣ 패치 적용 – libiec61850 ≥ 1.6.2 버전으로 업그레이드(공식 패키지 배포 시점까지).
2️⃣ 입력 검증 강화 – 네트워크 경계에 MMS 프록시/게이트웨이를 두어 BER 길이 필드를 사전에 차단한다.
3️⃣ 프로세스 보호 – 서비스 비정상 종료 시 자동 재시작을 위한 시스템d·supervisor 설정 및 핵심 프로세스 메모리 제한(cgroup).
4️⃣ 네트워크 분리 – IEC 61850‑MMS 포트를 내부 VLAN에 격리하고, 외부 접근은 VPN·IPsec 등으로 제한한다.
우선순위 근거: CVSS 6.5·non‑KEV·EPSS 미확보·exploit = moderate 로 판단돼 이번 주 내(“scheduled”) 대응이 권고된다([우선순위 결정] “CVSS=6.5 · non-KEV · EPSS=미확보 · exploit=moderate”).
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=6.5 · non-KEV · EPSS=미확보 · exploit=moderate · in_scope=None