Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-79980— Predictable and reused DHCPv4 transaction identifier allows spoofed DHCP replies to reconfigure gateway and DNS

Quick assessment

Affected
zephyrproject zephyr
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 中的 DHCPv4 客户端将事务标识符( )维护为一个计数器,而非每笔事务使用的随机值。该标识符在 中仅通过 初始化一次,随后在 和 中每次递增 1,而在 中从未被更新。因此,在 RENEWING(续约)和 REBINDING(重绑定)阶段的交互中,客户端会重复使用已在启动时通过广播 DHCPDISCOVER 报文发送过的那个标识符;即使标识符发生变化,其变化也是可预测的(仅递增 1)。而 RFC 2131 第 4.1 节要求每笔事务应使用单一标识符,且该标识符应被选择为使得客户端之间发生碰撞的概率极低。 该标

CVSS 5.6 · Medium
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-79980

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Predictable and reused DHCPv4 transaction identifier allows spoofed DHCP replies to reconfigure gateway and DNS
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L
Source: CVE Program / CVE List V5
Vulnerability Type
可预测问题
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
zephyrproject zephyr 1.7.0 ~ 4.5.0 -

II. Public POCs for CVE-2026-79980

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-79980

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-79980 (1)

Vendor Advisories for CVE-2026-79980 (1)

Same Patch Batch · zephyrproject · 2026-10-23 · 7 CVEs total

CVE-2026-79982 8.8 HIGH Out-of-bounds write in the USB Bluetooth HCI transport class when a controller-to-host HCI
CVE-2026-79977 8.2 HIGH WireGuard peer endpoint learned from unauthenticated transport-data messages allows off-pa
CVE-2026-79979 7.8 HIGH Stale TLB entries after demand-paging page-out let arm64 user threads access reused physic
CVE-2026-19741 7.5 HIGH OpenThread joiner autostart uses a publicly documented default Joining Device Credential (
CVE-2026-79981 6.5 MEDIUM DNS resolver reuses a single UDP source port for all queries, easing off-path answer spoof
CVE-2026-79978 3.6 LOW Out-of-bounds write in the ADXL345 sensor driver RTIO streaming FIFO read path

IV. Related Vulnerabilities

V. Comments for CVE-2026-79980

No comments yet


Leave a comment