[단독방어] 분석 — CVE-2026-31752
The bridge ND option length validation flaw in Linux kernels can be mitigated immediately by disabling IPv6 Neighbor Discovery on vulnerable bridges, while monitoring for malformed NS packets until patches are applied.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00129 · 악용난이도 hard
🔍 공격 기법
브리지 인터페이스에서 br_nd_send() 함수가 옵션 길이를 검증하지 않고 그대로 진행하기 때문에, 공격자는 IPv6 Neighbor Solicitation/Advertisement 패킷에 비정상적으로 짧거나 긴 옵션을 삽입하여 커널이 옵션 영역을 초과해 읽게 만든다. 로컬 권한(Low Privilege)만 있으면 해당 패킷을 생성·전송할 수 있으며, 결과는 커널 패닉으로 이어져 서비스 가용성이 완전히 상실된다(CVSS 벡터 AV:L/PR:L/UI:N/A:H).
악용 가능성: 이 취약은 CVSS 벡터 AV:L/AC:L/PR:L/UI:N 로 평가되므로 공격자는 로컬 환경에서 낮은 권한(일반 사용자) 으로도 추가적인 인증 없이 바로 활용할 수 있습니다. 다만 옵션 길이를 검증하지 않는 부분을 악용하려면, 네트워크 스택을 직접 호출하는 ND(Negighbor Discovery) 패킷을 조작하여 malformed 옵션을 포함시켜야 하며, 이는 커널 내부 함수 br_nd_send()가 실행되는 상황이어야 합니다. 따라서 공격 표면은 Linux 브리지 인터페이스를 사용하는 시스템에 국한되며, 외부에서 직접 접근하기는 어렵지만 해당 호스트 내에서 루트 권한이 필요 없는 로컬 프로세스가 네트워크 패킷을 생성·전송할 수 있는 경우 위험이 존재합니다. EPSS 값 0.00129 은 현재 관측된 실제 공격 사례가 매우 드물다는 것을 의미하지만, 잠재적 위협으로 완전히 무시하기엔 부족합니다. KEV(Known Exploited Vulnerabilities) 목록에 등재되지 않은 점은 아직 활발히 악용되고 있지 않음을 시사하나, 취약점 자체가 로컬에서 저권한으로 실행 가능하다는 점을 고려하면 방어 차원에서 사전 탐지가 필요합니다. 요약하면, 공격 난이도는 낮지만 공격 전제조건(로컬 접근 및 ND 패킷 조작) 이 제한적이며, 대상 시스템에 브리지 기능이 활성화된 경우에만 실제 위협이 실현될 수 있습니다.
💥 영향 분석
- 가용성: 커널 패닉 → 시스템 재부팅 필요, 서비스 중단.
- 기밀·무결성: 직접적인 데이터 유출·변조는 없으며, 현재 확인된 위험은 가용성 파괴에 국한된다.
🔗 관련 취약점·체이닝
- **CWE‑119 (버퍼 경계 초과)**와 CWE‑20 (입력 검증 부재) 유형의 결함이 근본 원인이다.
- 추정: 동일 커널 코드베이스에 존재하는 다른 IPv6 옵션 파싱 로직(CWE‑119)과 결합될 경우 권한 상승(예: CVE‑2024‑XXXX와 같은 메모리 손상 취약점)으로 이어질 가능성이 있다.
🔎 탐지
-
로그 지표
dmesg/ kernel 로그에"br_nd_send: option length exceeds remaining area"또는"br_nd_send: malformed LLADDR option"와 같은 문자열이 기록됨.auditd이벤트 ID 1300 (syscallrecvmsg/sendmsgon AF_INET6) 에서 비정상적인 옵션 길이를 가진 ICMPv6 패킷이 감지될 경우 필터링 대상.
-
SIEM 쿼리 예시
source:kernel AND message:/br_nd_send.*option length/→ 경고 레벨 HIGH, 집계 기간 5 분 내 3건 초과 시 알람.source:auditd AND syscall=recvmsg AND args contains "icmp6" AND args matches /type=135|136/ AND args matches /optlen=[0-9]{4,}/→ 의심 패킷 탐지.
-
오탐 튜닝
- 정상적인 ND 옵션은 일반적으로 길이 1~2(단위: 8바이트)이며, 3 이상인 경우는 드물다. 따라서
optlen > 2를 임계값으로 설정하면 정상 트래픽을 크게 차단하지 않는다. - 특정 테스트 환경에서 큰 옵션을 사용하는 경우 해당 호스트를 화이트리스트에 추가하고, 패턴을
"br_nd_send: option length exceeds remaining area"로 한정한다.
- 정상적인 ND 옵션은 일반적으로 길이 1~2(단위: 8바이트)이며, 3 이상인 경우는 드물다. 따라서
🛡️ 완화 방안
-
즉시(긴급 차단)
- 모든 브리지 인터페이스에서 IPv6 ND 패킷의 옵션 길이를 검증하도록 nftables 규칙을 적용한다.
- 예시:
nft add rule bridge ip6 icmp type neighbor-solicitation @nd_opts length > 2 drop및 동일 규칙을 neighbor-advertisement에 적용.
- 예시:
- 구현 난이도 ★☆☆ (단일 명령어 실행), 운영 영향 ○ (IPv6 ND 기능 제한되지만 브리지 환경에서는 대부분 서비스 중단 없음). 검증은
nft list ruleset로 확인하고, 정상적인 IPv6 연결 테스트로 검증한다.
- 모든 브리지 인터페이스에서 IPv6 ND 패킷의 옵션 길이를 검증하도록 nftables 규칙을 적용한다.
-
단기(완화)
- 커널 파라미터
net.bridge.bridge-nf-call-ip6tables=1을 활성화해 위 nftables 규칙이 브리지 트래픽에 적용되도록 한다. - 시스템 전반에 걸친
sysctl -w net.ipv6.conf.all.accept_ra=0과 유사한 설정을 검토하여 불필요한 RA/ND 처리를 최소화한다. 구현 난이도 ★★☆, 운영 영향 △ (RA 비활성화 시 일부 자동 구성 기능 상실). 검증은sysctl -a | grep accept_ra로 확인하고,ping6테스트로 정상 동작 여부를 점검한다.
- 커널 파라미터
-
근본(해결)
- 취약점이 패치된 커널 버전으로 업그레이드한다. 적용 대상:
linux_kernel 4.15 – 5.10.253,5.11 – 5.15.203,5.16 – 6.1.168,6.2 – 6.6.134,6.7 – 6.12.81,6.13 – 6.18.22,6.19 – 6.19.12이상.
- 업그레이드 절차: 패키지 매니저(
yum/dnf/apt)를 이용해 최신 커널 설치 → 재부팅 후uname -r로 버전 확인. 구현 난이도 ★★★, 운영 영향 ⚠ (재부팅 필요). 검증은/boot/config-$(uname -r) | grep CONFIG_BRIDGE_ND로 옵션 포함 여부를 확인하고, 패치 적용 로그(/var/log/dpkg.log등)를 점검한다.
- 취약점이 패치된 커널 버전으로 업그레이드한다. 적용 대상:
잔여 리스크: 임시 차단 규칙이 완전히 모든 비정상 옵션을 잡아내지는 못하므로, 패치를 적용하기 전까지는 고위험
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00129 · exploit=hard · in_scope=None