Skip to main content

Zephyr RTOS CVE-2026-79980

| EUVDEUVD-2026-109143 MEDIUM
Generation of Predictable Numbers or Identifiers (CWE-340)
2026-10-23 zephyr
5.6
CVSS 3.1 · Vendor: zephyr
View

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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Zephyr 1.7.0 <4.5.0

Affected Packages

euvd zephyr fix: 4.5.0

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

Vendor (zephyr) PRIMARY 5.6 MEDIUM
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

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

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

EPSS Score
0.3%
Top 81% exploitable
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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-2026-1678 CRITICAL POC
9.8 Mar 05

An out-of-bounds write in the Zephyr RTOS DNS resolver (dns_unpack_name()) lets a crafted DNS response corrupt memory on

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-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

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