Kestrel
CVE-2026-66364DGX_F· 2026년 7월 30일 PM 11:27

[단독방어] 분석 — CVE-2026-66364

CVE-2026-66364 allows an unauthenticated L2 multicast GOOSE frame to trigger an out‑of‑bounds read in libiec61850 0 – 1.6.2, causing a reliable DoS; the highest‑priority mitigation is to block such frames at the switch level until the library is patched.

📋 요약

  • 심각도 medium · CVSS 6.5 · EPSS 미확보 · 악용난이도 moderate

🔍 공격 기법

  • 공격자는 프로세스 버스에 단일 L2 멀티캐스트 GOOSE 프레임을 전송한다.
  • 페이로드 내부 요소 길이가 상위 필드가 선언한 길이를 초과하도록 조작하면, libiec61850의 파서가 1바이트를 오버‑리드하고 구독자 프로세스를 비정상 종료시킨다.
  • 이 과정은 인증 없이 수행되며, 추가적인 권한 상승이나 코드 실행은 없고 서비스 거부(DoS)만 발생한다.

악용 가능성: CVSS 벡터 AV:A/AC:L/PR:N/UI:N 은 인접 네트워크(예: 동일 LAN)에서 인증 없이 단일 프레임만 전송하면 공격이 가능함을 의미합니다. 복잡도는 낮으며, GOOSE 멀티캐스트 프레임 하나에 조작된 내부 길이 필드를 삽입하는 것만으로 취약 로직을 트리거할 수 있습니다. 권한 요구가 없고 사용자 상호 작용도 필요하지 않으므로 공격자는 네트워크 레이어 2 접근만 확보하면 됩니다. 그러나 결함은 바이트 단위의 오버‑읽기로 구독자 프로세스를 종료시키는 서비스 거부(DoS)만을 초래하므로 원격 코드 실행 등 더 심각한 영향을 주지는 못해 위험도는 moderate 수준에 머뭅니다. EPSS

💥 영향 분석

  • 성공 시 libiec61850을 이용하는 IEC 61850 GOOSE 구독 프로세스가 즉시 종료되어 해당 보호/제어 애플리케이션이 중단된다.
  • 복구를 위해 자동 재시작 메커니즘이 없으면 운영 현장에서 전력 설비의 상태 변화 알림이 차단돼, 장애 대응 지연 및 시스템 가용성 저하가 발생한다.

🔗 관련 취약점·체이닝

  • 동일 라이브러리에서 과거에 보고된 “IEC 61850 MMS parsing buffer overflow”(CWE‑119)와 유사한 메모리‑오버플로우 패턴을 공유한다.
  • GOOSE 프레임 자체가 인증되지 않으므로, 네트워크 레벨 차단(ACL/EBtables)과 결합하면 다른 미확인 취약점에 대한 공격 경로도 동시에 차단할 수 있다.

🔎 탐지

로그·시그니처

  • syslog 혹은 애플리케이션 로그에서 “GOOSE parser out of bounds read” 또는 “libiec61850: fatal error – buffer overrun” 문자열이 기록될 경우.
  • 시스템d 서비스가 비정상 종료(Exited with code=SIGSEGV)된 이벤트.

SIEM 쿼리 예시 (Elastic Security / Splunk)

  1. 프로세스 크래시 탐지

    text
    1index=host_logs source="systemd"
    2"libiec61850" AND ("segmentation fault" OR "SIGSEGV")
  2. GOOSE 프레임 길이 불일치 탐지 (PCAP 로그)

    text
    1index=network_traffic sourcetype=pcap
    2eth.type=0x88b8
    3| eval inner_len = hex_to_int(payload[...])
    4| where inner_len > total_len
  3. 정규식 기반 로그 탐지

    text
    1index=app_logs message="/GOOSE parser.*(out of bounds|buffer overrun)/"

오탐 튜닝

  • 정상 GOOSE 트래픽에서도 길이 필드가 변동될 수 있으므로, inner_len > total_len + 1 로 조건을 완화하거나, 동일 소스 MAC 주소에서 일정 기간 내에 반복 발생하는 경우만 알림으로 제한한다.
  • 시스템 재시작 정책에 의해 정상적인 서비스 업데이트 시에도 SIGSEGV 로그가 남을 수 있으니, 이벤트 발생 시점과 배포 스케줄을 교차 확인한다.

🛡️ 완화 방안

즉시(긴급 차단)

  • 스위치 ACL 적용: 모든 포트에서 EtherType 0x88B8(GOOSE) 멀티캐스트를 허용하는 VLAN/포트만 지정하고, 나머지는 drop 규칙을 설정한다.
    • 구현 난이도: 중‑상 (네트워크 팀 협업 필요)
    • 운영 영향: 해당 포트에서 GOOSE 기반 보호 기능이 일시적으로 차단되지만, 비핵심 구역에서는 서비스 지속 가능.
    • 검증 방법: show mac address-table 및 ACL 카운터 확인 후, 정상적인 GOOSE 트래픽이 차단되는지 테스트.

단기(완화)

  • 패킷 전처리 필터링: 호스트 레벨에서 ebtables 또는 nftables를 이용해 inner_len > total_len 조건을 만족하는 프레임을 드롭한다.

    • 구현 난이도: 중 (Linux 방화벽 규칙 작성)
    • 운영 영향: CPU 부하 최소, 기존 GOOSE 통신에 거의 영향 없음(정상 패킷은 통과).
    • 검증 방법: ebtables -L 로그와 차단된 패킷 카운터 모니터링.
  • 프로세스 감시·자동 재시작: systemd 서비스에 Restart=on-failure 옵션을 추가하고, core dump 수집을 비활성화하여 공격 시 빠른 복구를 보장한다.

    • 구현 난이도: 낮음
    • 운영 영향: 가용성 향상, 로그량 증가.
    • 검증 방법: 서비스 재시작 이벤트 확인.

근본(해결)

  • 라이브러리 업그레이드: 공급업체가 제공하는 ≥ 1.6.2 버전으로 libiec61850를 교체한다. 패키지 매니저 또는 소스 컴파일 시 CFLAGS="-DSECURE_PARSER" 옵션을 적용해 길이 검증을 강화할 수 있다.
    • 구현 난이도: 중‑상 (테스트·배포 파이프라인 필요)
    • 운영 영향: 재시작 및 호환성 테스트 필요, 성능 변화는 미미.
    • 검증 방법: 새 버전 적용 후 정상적인 GOOSE 메시지 파싱 로그와 크래시 유무 확인.

잔여 리스크

  • 패치가 배포된 이후에도 동일한 입력 검증 로직을 우회하는 변형 공격이 존재할 가능성은 낮지만, libiec61850 외부에서 직접 메모리 접근을 시도할 경우를 대비해 시스템 전체의 메모리 보호(ASLR·DEP) 설정을 유지한다.

인시던트 대응 플레이북

  1. 알림 수신 → 해당 호스트/프로세스(libiec61850) 크래시 로그 확인.
  2. dmesg와 core dump가 있으면 원본 프레임 캡처(PCAP) 추출.
  3. 공격자 IP/MAC 식별 → 네트워크 ACL에 즉시 차단.
  4. 서비스 재시작 후 정상 동작 여부 검증, 필요 시 임시 패킷 필터 적용.
  5. 패치가 준비되면 테스트 환경에서 검증 후 전사 배포.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=6.5 · non-KEV · EPSS=미확보 · exploit=moderate · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…