Vulnerability Assessment
| Weakness |
CWE
|
| Impact | The signals point to a genuine but non-emergency weakness. The input CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L, 5.6 Medium) describes a network, unauthenticated flaw with high attack complexity, consistent with the fact that the attacker must first learn or predict the client's single reply-validation token (the transaction identifier) before a forged reply is accepted. CWE-340 (predictable/insufficiently random value) matches the root cause precisely: the xid was a boot-seeded counter reused unchanged across RENEWING/REBINDING. No EPSS score, no CISA KEV listing, and no public exploit were provided - the two references are the fix commit and the vendor GHSA advisory, not proof-of-concept code - so exploitation is unproven in the wild. The vuln.today decision label is 'this_month' (not act_now/emergency), which aligns with a Medium-severity, patch-available, no-known-exploitation posture: remediate on a normal monthly cycle rather than as an incident. The main caveat is reach: although CVSS is scored AV:N, the realistic way to obtain the token is to observe the broadcast DHCPDISCOVER on the same L2 segment or to have been the DHCP server/relay on a network the device previously joined - this makes practical exploitation more adjacent/opportunistic than fully remote-internet, a nuance the AV:N metric understates. No EPSS or KEV data is available to confirm or refute real-world targeting. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 23, 2026
Predictable and reused DHCPv4 transaction identifiers in the Zephyr RTOS DHCP client (subsys/net/lib/dhcpv4/dhcpv4.c, versions 1.7.0 through 4.4.2) allow an attacker who has observed or learned a single identifier to forge BOOTP replies that the client accepts. Because parsing applies the router and DNS options to the interface before any state check, one accepted datagram can repoint the device's default gateway and resolvers at attacker-chosen addresses, redirecting its traffic; during RENEWING or REBINDING a forged ACK re-binds the lease with attacker parameters and a forged NAK drops the address and restarts configuration. Remote unauthenticated exploitation is scored CVSS 3.1 5.6 (AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L), the weakness is rated non-emergency on the available signals, and no public exploit code has been identified at time of analysis; fixes are merged upstream and in the v4.4, v4.3 and v3.7 branches, with 4.5.0 projected as the first fixed release.
RemediationAI
Vendor-released patch: upstream fix commit 6a96770a1ea8c38a54a45f892c3e97be0f7dac41 is merged on main via PR #116955 and backported to v4.4-branch (#117553), v4.3-branch (#117554) and v3.7-branch (#117555), with 4.5.0 projected as the first release carrying the fix - the projection should be confirmed against the shipped release notes. Because the identifier is the only unpredictable reply-validation token and the listener accepts replies from any source, the advisory documents updating as the complete fix and offers no separate workaround; teams that cannot immediately move to a fixed release should track the merged branch backports rather than rely on configuration changes. Confirm the patched state on a device by checking that a retransmitted DHCPDISCOVER keeps its identifier while each new RENEWING, REBINDING and INIT/INIT-REBOOT exchange carries a freshly drawn random xid, as pinned by the new test test_discover_retransmission_keeps_xid in tests/net/dhcpv4/client/src/main.c. Advisory and patch details are at https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-p2q6-38x2-wmc8 and https://github.com/zephyrproject-rtos/zephyr/commit/6a96770a1ea8c38a54a45f892c3e97be0f7dac41.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Zephyr's DHCPv4 client (subsys/net/lib/dhcpv4/dhcpv4.c) implements the RFC 2131 client state machine over a raw UDP socket bound to port 68 with a wildcard remote address and port 0. The flaw is CWE-340, generation of predictable numbers: iface->config.dhcpv4.xid was seeded once with sys_rand32_get() at interface start, incremented by one in dhcpv4_send_discover() and dhcpv4_send_decline(), and never changed by dhcpv4_send_request(), so RENEWING and REBINDING exchanges reused the identifier that had already gone out in the boot-time broadcast DHCPDISCOVER, and any change was a predictable +1 step. RFC 2131 section 4.1 requires one identifier per transaction chosen to make collisions unlikely. In net_dhcpv4_input() the only reply-validation tokens are the BOOTP op field, a matching xid and a matching chaddr (the interface MAC, which is public); there is no server-identifier or source-address check, so anyone who learns one xid - a same-segment host seeing the broadcast DISCOVER, or a DHCP server or relay on a previously joined network - holds a valid token for the device's uptime without observing unicast renew traffic. Impact does not depend on client state because dhcpv4_parse_options() calls net_if_ipv4_set_gw() and dns_resolve_reconfigure() while parsing, before the state gate in dhcpv4_handle_reply(). The fix adds dhcpv4_generate_xid(), drawing a fresh sys_rand32_get() when entering SELECTING, RENEWING and REBINDING and at the INIT/INIT-REBOOT entry taken when an interface with a lease goes down, while REQUESTING and DECLINE keep the identifier of their exchange; the initial-discover backoff now draws its own randomness rather than deriving it from the identifier.
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:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Primary rating from Vendor (zephyr) · only source for this CVE.
CVSS VectorVendor: zephyr
DescriptionCVE.org
The DHCPv4 client in subsys/net/lib/dhcpv4/dhcpv4.c maintained its transaction identifier (iface->config.dhcpv4.xid) as a counter rather than as a per-transaction random value. It was seeded once with sys_rand32_get() in dhcpv4_start_internal(), incremented by one in dhcpv4_send_discover() and dhcpv4_send_decline(), and never changed by dhcpv4_send_request() - so every RENEWING and REBINDING exchange reused, unchanged, the identifier that had already appeared on the wire in the broadcast DHCPDISCOVER at boot, and where the identifier did move it moved predictably by one. RFC 2131 4.1 requires a single identifier per transaction, chosen so that clients are unlikely to collide.
This identifier is the client's only unpredictable reply-validation token. net_dhcpv4_input() accepts a BOOTP reply on op, a matching xid, and a matching chaddr (the interface MAC, which is public); the UDP callback is registered with a wildcard remote address and port, and no server-identifier or source-address check is applied. An attacker who learns one identifier - for example any host on the same segment that sees the broadcast DHCPDISCOVER, or a DHCP server or relay on a network the device previously joined - therefore retains a valid token for the device's whole uptime, and can predict the identifiers of later exchanges, without having to observe the unicast renew traffic or race the legitimate server.
A forged reply that passes those checks has effect regardless of client state, because dhcpv4_parse_options() applies its side effects before the state machine gate in dhcpv4_handle_reply(): the router option calls net_if_ipv4_set_gw() and the DNS option calls dns_resolve_reconfigure(). A single accepted datagram can thus repoint the device's default gateway and resolvers at attacker-controlled addresses, redirecting its traffic; during RENEWING or REBINDING a forged DHCPACK re-binds the lease with attacker-chosen parameters and a forged DHCPNAK removes the address and restarts configuration.
The fix draws a fresh sys_rand32_get() value at each point where a transaction begins - entering SELECTING, RENEWING and REBINDING, and at the INIT/INIT-REBOOT entry taken when an interface with a lease goes down - while REQUESTING and DECLINE keep the identifier of the exchange they belong to, as RFC 2131 requires. As a side effect the client also no longer discards a slow server's offer after retransmitting a discover, and the initial-discover backoff now draws its own randomness instead of deriving it from the identifier.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
EUVD-2026-109143
NVD
CVE.org
EPSS
GitHub
Exploit-DB