🔍 CVE-2026-7656

8.1
CVSS Score
HIGH
2026-06-29
2026-10-25 21:10
✅ 완료

🇰🇷 한글 설명

IPv6 Neighbor Discovery 핸들러에서 논리 연산자 우선순위 오류로 인해 RFC 4861 유효성 검사가 우회되는 취약점입니다. 이로 인해 Hop Limit 검증 및 소스 주소 확인이 생략되어 공격자가 위조된 RA, NS, NA 메시지를 전송할 수 있습니다. 결과적으로 중간자 공격(MitM), 트래픽 재지정, 서비스 거부(DoS)가 가능해집니다.

💡 쉬운 설명

네트워크 통신 규칙을 확인하는 과정에서 계산 실수로 인해 가짜 신호를 걸러내지 못하는 문제입니다. 공격자가 가짜 정보를 보내면 사용자의 인터넷 설정이 바뀌거나 통신 내용이 가로채질 수 있습니다.

🇺🇸 원문 (English)

The IPv6 Neighbor Discovery handlers in subsys/net/ip/ipv6_nbr.c (handle_ra_input, handle_ns_input, handle_na_input) used an incorrect boolean expression that combined the RFC 4861 validity checks with the ICMPv6 code check using the wrong operator precedence: the form was ((length/hop/source/target checks) && (icmp_hdr->code != 0)). Because every legitimate ND message carries ICMPv6 code 0, an attacker setting code == 0 (the normal value) caused the entire predicate to evaluate false, so the packet was never dropped and all of the other checks were silently skipped. The bypassed checks include the mandatory Hop Limit == 255 verification (which proves an ND packet originated on-link and was not forwarded) and, for Router Advertisements, the requirement that the source be a link-local address, as well as multicast-target sanity checks. As a result, an adjacent on-link attacker — and, because the Hop-Limit-255 guard is bypassed, potentially a remote/off-link attacker whose packets would otherwise be rejected — can have forged Router Advertisement, Neighbor Solicitation, and Neighbor Advertisement messages accepted. A forged RA lets the attacker reconfigure the victim's default router, on-link prefixes (SLAAC), MTU, reachable/retransmit timers, and (with CONFIG_NET_IPV6_RA_RDNSS) DNS servers, while forged NS/NA enable neighbor-cache poisoning, enabling man-in-the-middle, traffic redirection, and denial of service. The flaw is an input-validation/authentication weakness rather than a memory-safety issue: the underlying packet-parsing primitives (net_pkt_get_data, net_pkt_read, net_pkt_skip) are independently bounds-safe and the validated length is the true buffer length, so skipping the length check causes no out-of-bounds access. The defect has existed since the logic was introduced in 2018 and shipped in all releases through v4.4.0; it is fixed by splitting the condition so any failing check drops the packet.

📍 영향받는 시스템

IPv6 Neighbor Discovery 로직이 포함된 시스템 (2018년 도입 이후 v4.4.0 포함 모든 버전)

⚔️ 공격 벡터

인접한 네트워크 또는 Hop Limit 검증 우회를 통한 원격 공격자가 위조된 ICMPv6 메시지 전송

🛡️ 대응 방법

논리 조건을 분리하여 모든 유효성 검사(Hop Limit, 소스 주소 등)가 개별적으로 수행되도록 패치 적용

🔧 검증 코드

커널 소스 내 해당 파일의 논리 연산자 구조가 수정되었는지 확인하거나 패치된 버전 여부를 체크합니다.

Shell / Script
uname -a && grep -r "ipv6_nbr.c" /path/to/kernel/source 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

💻 영향받는 소프트웨어

Log Server