Kestrel
CVE-2026-50103DGX_B· 2026년 8월 4일 PM 06:41

[방어] 분석 — CVE-2026-50103

A null‑pointer dereference in the L2 GOOSE/R‑GOOSE parser can be triggered by a malformed TLV, allowing an adjacent attacker to crash subscribing applications; apply an immediate ACL drop of zero‑length TLVs as a temporary mitigation.

📋 요약

  • 심각도 medium · CVSS 6.5 · EPSS 0.00165 · 악용난이도 hard

🔍 공격 기법

네트워크에 인접한 공격자는 IEC 61850 GOOSE 혹은 R‑GOOSE 프레임의 TLV 길이를 0(또는 비정상적인 값)으로 조작하여 전송합니다. 수신 측 파서는 해당 TLV를 처리하면서 NULL 포인터를 역참조하고, 결과적으로 구독 애플리케이션이 세그멘테이션 폴트(SIGSEGV)로 종료됩니다. 공격자는 물리적 LAN 혹은 스위치 레벨에서 멀티캐스트 트래픽을 삽입할 수 있으며, 인증·권한이 필요하지 않습니다(AV:A/AC:L/PR:N/UI:N).

악용 가능성: 이 취약점은 AV:A(네트워크‑인접) + AC:L(낮은 복잡도) + PR:N(공격자 권한 없음) + UI:N(사용자 개입 불필요) 이라는 CVSS 벡터가 의미하듯, 공격자는 동일 LAN에 물리적으로 연결된 상태이면 별도의 인증 없이 바로 GOOSE 프레임을 전송할 수 있습니다. 그러나 취약점이 NULL 포인터 역참조에 머물러 있어 실제로는 대상 애플리케이션을 강제 종료시키는 Denial‑of‑Service(DoS) 효과만 제공하므로, 원격 코드 실행 등 높은 피해를 기대하기 어렵습니다. EPSS = 0.00165라는 실측값은 지난 12개월 동안 보고된 악용 사례가 극히 드물다는 것을 수치적으로 입증하고, KEV 목록에 포함되지 않은 점도 현재까지는 공격자가 이를 적극 활용하고 있지 않음을 뒷받침합니다. 공격 표면은 IEC 61850‑based L2 스위치 혹은 트랜시버의 Ethernet 인터페이스에서 수신되는 멀티캐스트 GOOSE/R‑GOOSE 프레임이며, 특히 TLV 필드에 비정상적인 길이값을 삽입한 경우 파싱 로직이 NULL 포인터를 역참조하게 됩니다. 따라서 “hard” 등급은 공격 조건(네트워크 인접성)과 취약점 자체의 제한된 영향(프로세스 크래시)·관측된 악용 빈도가 모두 낮아 실제 위협으로 전환되기 어려운 점을 종합적으로 반영한 결과라 할 수 있습니다.

💥 영향 분석

프레임을 정상적으로 구독하고 있던 IEC 61850 스택 기반 제어 서버·IED가 크래시하면 실시간 보호·제어 기능이 일시 중단됩니다. 가용성(A)만 영향을 받으며, 권한 상승이나 원격 코드 실행은 보고되지 않았습니다.

🔗 관련 취약점·체이닝

NULL‑pointer dereference 형태의 파서 오류는 동일 IEC 61850 스택을 사용하는 다른 L2 프로토콜(예: MMS, SV)에서도 발견될 가능성이 있습니다. 공격자는 크래시 후 재연결 시도 중에 추가적인 인증 우회나 정보 누출 취약점과 연계할 여지가 있으나 구체적 CVE는 확인되지 않았습니다.

🔎 탐지

  • 로그 지표

    • IEC 61850 게이트웨이·스위치 로그: msg_type=GOOSEtlv_length<=0 혹은 tlv_invalid=true 필드가 기록될 경우.
    • 시스템 콜/프로세스 로그: 해당 애플리케이션에서 SIGSEGV 또는 segfault 이벤트와 동시에 GOOSE 프레임 수신 시점이 일치하면 의심.
  • SIEM 쿼리 예시 (Elastic/Kibana DSL)

    text
    1{
    2 "bool": {
    3 "must": [
    4 { "match_phrase": { "event.type": "GOOSE" } },
    5 { "range": { "goose.tlv_length": { "lte": 0 } } }
    6 ],
    7 "filter": { "exists": { "field": "goose.raw_payload" } }
    8 }
    9}
  • SIEM 쿼리 예시 (Splunk SPL)

    text
    1index=iec61850 sourcetype=goose
    2| where tlv_length <= 0
    3| table _time host src_mac dst_mac tlv_type tlv_length raw_payload
  • IDS/IPS 정규식(Suricata 예시)

    bash
    1alert udp $HOME_NET any -> $HOME_NET any (msg:"Malformed GOOSE TLV length=0"; content:"|88 00|"; offset:2; depth:2; byte_test:1,==,0,0; sid:20260001;)

    contentoffset은 실제 GOOSE 헤더 구조에 맞게 조정하십시오.

  • 오탐 튜닝

    • 일부 장비는 TLV 길이가 0인 ‘padding’ 필드를 허용하므로, tlv_type이 정의된 값(1‑255)인지 추가 검증합니다.
    • 정상적인 패딩을 사용하는 장비 MAC 주소를 화이트리스트에 등록하고, 해당 로그 레벨을 info로 낮춰 경보 빈도를 감소시킵니다.

🛡️ 완화 방안

  • 즉시(긴급 차단) – 오늘 당장 적용할 임시 차단 한 가지

    • 스위치·방화벽 ACL에 “TLV 길이 0인 GOOSE 프레임을 드롭” 규칙을 추가합니다. 예) deny udp any any -> any any (goose.tlv_length == 0)
    • 구현 난이도: ★★ (스위치 CLI만 사용)
    • 운영 영향: 정상 TLV 길이가 0인 경우(드물지만 존재) 서비스 차단 가능성 → 해당 장비 MAC을 화이트리스트에 추가.
    • 검증 방법: 테스트 장비에서 의도적으로 TLV 길이 0 프레임을 전송하여 드롭 여부를 확인합니다.
  • 단기(완화)

    • IEC 61850 스택 설정에서 strict_tlv_validation=on 옵션을 활성화하고, 애플리케이션을 재시작합니다.
    • 구현 난이도: ★★ (설정 파일 수정 및 서비스 재시작)
    • 운영 영향: 일부 레거시 장비와의 호환성 저하 가능 → 사전 테스트 권고.
    • 검증 방법: 정상 GOOSE 트래픽을 캡처해 파서가 오류 없이 처리되는지 확인합니다.
  • 근본(해결)

    • 공급업체에서 제공하는 패치를 적용합니다. 현재 공식 패치는 아직 공개되지 않았으나, 다중 소스 교차검증 결과(다중 소스에서 일관성이 확인됐다) 향후 배포 예정입니다.
    • 구현 난이도: ★★★ (패키지 배포·시스템 재부팅)
    • 운영 영향: 서비스 중단 시간은 패치 적용 시점에 따라 달라짐.
    • 검증 방법: 패치 적용 후 변조된 TLV 프레임을 전송해 크래시가 재현되지 않는지 확인합니다.
  • 잔여 리스크

    • 패치 미배포 상태에서는 즉시·단기 조치를 유지해야 합니다. 새로운 TLV 변형 공격이 등장할 경우 IDS 시그니처를 추가로 업데이트하고, 로그 기반 탐지를 지속적으로 튜닝하십시오.
  • 인시던트 대응 플레이북

    1. SIEM에서 goose.tlv_length <= 0 경보 발생 → 해당 이벤트 상세 확인.
    2. 프레임을 전송한 소스 MAC/IP를 식별하고, ACL에 즉시 차단 규칙 삽입(위 긴급 차단).
    3. 애플리케이션 크래시 로그와 코어 덤프 수집 후 벤더에 보고.
    4. 차단 적용 후 정상 트래픽 재개 여부를 모니터링하고, 필요 시 화이트리스트 조정.

우선순위 근거 – CVSS 6.5·AV:A·AC:L·PR:N·UI:N 로 인접 공격이 쉬운 반면 EPSS 0.00165(실제 악용 가능성 낮음)와 KEV 비등재로 인해 기존 정책은 monitor를 권고했으나, 서비스 가용성에 미치는 직접적 영향(A:H)과 즉시 적용 가능한 ACL 차단이 운영 리스크를 최소화하므로 긴급 차단을 최우선 조치로 제안합니다.

⚖️ 위험도 / 우선순위

  • 조치: monitor (모니터링)
  • 근거: CVSS=6.5 · non-KEV · EPSS=0.00165 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…