Zephyr RTOS
CVE-2026-7656
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach victim's link or route ND packet to device
-
DeliveryCraft RA/NS/NA with ICMPv6 code 0
-
ExploitPredicate skips RFC 4861 checks, packet accepted
-
ExecutionReconfigure default router/DNS or poison neighbor cache
-
ImpactMITM, redirection, or denial of service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Always-incorrect control flow
|
| Exploitation Conditions | Exploitation requires the target to be a Zephyr device (≤ v4.4.0) running the IPv6 stack with Neighbor Discovery processing active, and the attacker must be able to deliver ICMPv6 ND packets to it - natively from an adjacent on-link position (AV:A), or potentially from off-link/remote since the bypassed Hop-Limit==255 guard normally blocks routed ND packets. The triggering condition is trivially met: the attacker simply sets the ICMPv6 code field to 0 (the standard, default value for every legitimate ND message), which forces the buggy predicate false and skips all validation - no special victim configuration, authentication (PR:N), or user interaction (UI:N) is needed. Forged-DNS impact additionally requires CONFIG_NET_IPV6_RA_RDNSS to be enabled on the victim; router/prefix/MTU/timer hijack and NS/NA neighbor-cache poisoning need no such option. Limiting factors: IPv4-only or IPv6-disabled builds are unaffected, and network-layer RA-Guard/ND-inspection or isolated trusted segments can prevent forged packets from reaching the device. |
| Impact | The CVSS 3.1 vector (AV:A/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H, base 8.1) reflects an unauthenticated, low-complexity attack from an adjacent (on-link) position with high integrity and availability impact and no confidentiality impact - consistent with neighbor-cache/router poisoning rather than direct data disclosure. The most important nuance is that the description explicitly states the bug bypasses the Hop-Limit==255 guard, meaning the AV:A scoping is conservative: off-link/remote attackers whose packets would normally be rejected may also succeed, so real-world reach could exceed the 'Adjacent' label - verify exposure assumptions accordingly. No EPSS score was supplied, the CVE is not KEV-listed, and no POC is referenced, so there is no public exploit identified at time of analysis; this is a credible, high-impact pre-auth network flaw but not currently evidenced as actively exploited. The 'Denial Of Service' tag understates impact - MITM and traffic redirection are also achievable. Practical priority is high for any internet- or untrusted-LAN-facing Zephyr IPv6 device, moderate for isolated/trusted segments. |
| Exploit ScenarioDerived | An attacker on the same link (or, because the Hop-Limit==255 check is bypassed, potentially a remote attacker whose packet reaches the device) sends a forged Router Advertisement with ICMPv6 code 0 advertising the attacker as the default router and supplying a malicious RDNSS DNS server. The Zephyr victim accepts it without validating source link-local address or hop limit, reroutes its traffic and DNS through the attacker, enabling man-in-the-middle interception, redirection, or denial of service. No POC is currently public, and the low attack complexity (AC:L) with no required privileges or user interaction makes crafting such packets straightforward with standard IPv6 tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 29, 2026
Forged IPv6 Neighbor Discovery acceptance in the Zephyr RTOS network stack (all releases through v4.4.0) lets an adjacent on-link attacker inject spoofed Router Advertisement, Neighbor Solicitation, and Neighbor Advertisement messages because an operator-precedence bug in subsys/net/ip/ipv6_nbr.c silently skips every RFC 4861 sanity check whenever the (always-present) ICMPv6 code is 0. Because the bypassed checks include the Hop-Limit==255 on-link proof, even off-link/remote attackers may have forged ND packets accepted, enabling default-router/DNS/SLAAC hijacking and neighbor-cache poisoning for man-in-the-middle, redirection, and denial of service. A vendor patch exists (commit 095f064c) but there is no public exploit identified at time of analysis and the issue is not in CISA KEV.
RemediationAI
Apply the upstream fix that splits the broken condition so any single failing RFC 4861 check drops the packet: Vendor-released patch available as commit 095f064c94b95f9c35e05602e693dc268f0cb865 (https://github.com/zephyrproject-rtos/zephyr/commit/095f064c94b95f9c35e05602e693dc268f0cb865), per advisory GHSA-cpjw-rvwx-ph9f; rebuild and reflash device firmware from a Zephyr tree containing this commit (releases after v4.4.0). Because Zephyr ships as firmware, prioritize an OTA/firmware update campaign rather than a runtime config change. Where patching is delayed, compensating controls include placing affected IPv6 devices on isolated/trusted L2 segments and applying RA Guard / ND inspection (e.g., IPv6 RA-Guard, ND snooping) on managed switches to block forged RA/NS/NA at the network edge - trade-off: requires managed-switch support and can break legitimate routers if misconfigured. If IPv6 is not required for a deployment, disabling IPv6 (CONFIG_NET_IPV6) eliminates the attack surface but removes IPv6 connectivity; disabling CONFIG_NET_IPV6_RA_RDNSS removes only the forged-DNS vector and does not stop router/prefix or neighbor-cache poisoning, so it is a partial mitigation only.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected technology is IPv6 Neighbor Discovery (ND, RFC 4861) over ICMPv6 as implemented in the Zephyr RTOS IP stack (cpe:2.3:a:zephyrproject:zephyr). ND uses RA messages for router/prefix/DNS autoconfiguration (SLAAC) and NS/NA for address resolution and neighbor reachability. RFC 4861 mandates several anti-spoofing validity checks - notably IPv6 Hop Limit == 255 (which guarantees the packet was not routed and therefore originated on-link), a link-local source for RAs, and multicast-target sanity checks. The root cause is CWE-670 (Always-Incorrect Control Flow Implementation): the validation predicate in handle_ra_input/handle_ns_input/handle_na_input was written as '((length/hop/source/target checks) && (icmp_hdr->code != 0))'. Since legitimate ND traffic always carries ICMPv6 code 0, the second operand is false, the AND short-circuits the entire predicate to false, and the drop branch is never taken - so all preceding checks are skipped. This is purely a logic/input-validation defect, not memory corruption: the parsing primitives (net_pkt_get_data, net_pkt_read, net_pkt_skip) remain bounds-safe and 'length' is the true buffer length, so skipping the length check does not cause out-of-bounds access.
Know when Zephyr gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Adjacent, no-auth, low-complexity ND injection yields high integrity/availability impact; C raised from N to L because router/DNS redirection enables MITM interception.
Primary rating from Vendor (zephyr).
CVSS VectorNVD
Lifecycle Timeline
2DescriptionNVD
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.
Executive ViewAI
Zephyr RTOS devices running versions through v4.4.0 contain a critical vulnerability in IPv6 packet validation that allows network-adjacent attackers to hijack network routing, DNS services, and IP address assignments. Organizations deploying Zephyr-based IoT and embedded systems are exposed to man-in-the-middle attacks and network redirection without active exploitation currently detected.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Affected Products (CPE)NVD
Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),
An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on
Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit
Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS
Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner
Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability
Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable
DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul
zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(
Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul
The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte
Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB