Skip to main content

Zephyr RTOS CVE-2026-7656

MEDIUM
Always-Incorrect Control Flow Implementation (CWE-670)
2026-06-29 zephyr
6.8
CVSS 3.1 · NVD
Share

Severity by source

Vendor (zephyr) PRIMARY
HIGH
qualitative
NVD
6.8 MEDIUM
AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
vuln.today AI
8.3 HIGH

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.

3.1 AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:H
4.0 AV:A/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (zephyr).

CVSS VectorNVD

CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:H
Attack Vector
Adjacent
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
High

Lifecycle Timeline

3
Severity Changed
Jul 06, 2026 - 19:52 NVD
HIGH MEDIUM
CVSS changed
Jul 06, 2026 - 19:52 NVD
8.1 (HIGH) 6.8 (MEDIUM)
Analysis Generated
Jun 29, 2026 - 22:51 vuln.today

DescriptionNVD

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.

AnalysisAI

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.

Technical ContextAI

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.

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.

More in Zephyr

View all
CVE-2023-4260 CRITICAL POC
10.0 Sep 27

Potential off-by-one buffer overflow vulnerability in the Zephyr fuse file system. Rated critical severity (CVSS 10.0),

CVE-2023-5055 CRITICAL POC
9.8 Nov 21

Possible variant of CVE-2021-3434 in function le_ecred_reconf_req. Rated critical severity (CVSS 9.8), this vulnerabilit

CVE-2023-4257 CRITICAL POC
9.8 Oct 13

Unchecked user input length in /subsys/net/l2/wifi/wifi_shell.c can cause buffer overflows. Rated critical severity (CVS

CVE-2023-3725 CRITICAL POC
9.8 Oct 06

Potential buffer overflow vulnerability in the Zephyr CAN bus subsystem. Rated critical severity (CVSS 9.8), this vulner

CVE-2021-3323 CRITICAL POC
9.8 Oct 12

Integer Underflow in 6LoWPAN IPHC Header Uncompression in Zephyr. Rated critical severity (CVSS 9.8), this vulnerability

CVE-2021-3625 CRITICAL POC
9.8 Oct 05

Buffer overflow in Zephyr USB DFU DNLOAD. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitable

CVE-2021-3319 CRITICAL POC
9.8 Oct 05

DOS: Incorrect 802154 Frame Validation for Omitted Source / Dest Addresses. Rated critical severity (CVSS 9.8), this vul

CVE-2018-1000800 CRITICAL POC
9.8 Sep 06

zephyr-rtos version 1.12.0 contains a NULL base pointer reference vulnerability in sys_ring_buf_put(), sys_ring_buf_get(

CVE-2023-4264 CRITICAL POC
9.6 Sep 27

Potential buffer overflow vulnerabilities n the Zephyr Bluetooth subsystem. Rated critical severity (CVSS 9.6), this vul

CVE-2026-1678 CRITICAL POC
9.4 Mar 05

Buffer overflow in Zephyr RTOS dns_unpack_name() function causing OOB writes. PoC available.

CVE-2024-1638 CRITICAL POC
9.1 Feb 19

The documentation specifies that the BT_GATT_PERM_READ_LESC and BT_GATT_PERM_WRITE_LESC defines for a Bluetooth characte

CVE-2023-5753 HIGH POC
8.8 Oct 25

Potential buffer overflows in the Bluetooth subsystem due to asserts being disabled in /subsys/bluetooth/host/hci_core.c

Share

CVE-2026-7656 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy