HIGH 7.5

CVE-2026-29008: U-Boot TCP Integer Underflow Denial of Service Vulnerability

U-Boot bootloaders through version 2026.04-rc3 are vulnerable to a crash triggered by a specially crafted network packet. An attacker on the same network can send a malformed TCP packet that causes the bootloader to crash during the boot process, preventing devices from starting up. The vulnerability stems from improper handling of packet data size calculations that can result in memory operations exceeding intended boundaries.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-191
Affected products
4 configuration(s)
Published / Modified
2026-07-08 / 2026-07-22

NVD description (verbatim)

U-Boot through 2026.04-rc3 contains an integer underflow vulnerability in the tcp_rx_state_machine() function (net/tcp.c) that allows a network-adjacent attacker to crash the bootloader by sending a malformed TCP SYN+ACK packet with a manipulated data offset field causing payload_len to become negative. When the TCP_SYN_SENT handler calls tcp_rx_user_data() without invoking tcp_seg_in_wnd() validation, the negative payload_len is implicitly converted to a large unsigned integer (e.g., 0xFFFFFFD8) and passed to memcpy() in store_block(), causing an immediate crash that prevents device boot and may enable memory corruption when CONFIG_LMB is disabled.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-29008 is an integer underflow vulnerability in U-Boot's TCP implementation (tcp_rx_state_machine() function in net/tcp.c). When processing an inbound TCP SYN+ACK packet, the code fails to validate the packet's data offset field before calculating payload_len. A negative payload_len value is then implicitly cast to a large unsigned integer and passed to memcpy() in store_block(), triggering a denial of service. The root cause is the absence of tcp_seg_in_wnd() validation checks before invoking tcp_rx_user_data() in the TCP_SYN_SENT handler. With CONFIG_LMB disabled, the vulnerability can progress beyond a simple crash and potentially corrupt memory regions.

Business impact

Devices relying on affected U-Boot versions for secure boot are at risk of boot failure, which can cascade into operational downtime and supply-chain vulnerabilities. For embedded systems in production environments—particularly IoT devices, network appliances, and industrial equipment—a boot-time denial of service means devices become unreachable and require manual intervention or physical access to recover. In scenarios where attackers are network-adjacent (same subnet or VLAN), repetitive triggering of this crash could be weaponized to disable critical infrastructure or prevent legitimate firmware updates.

Affected systems

All DENX U-Boot releases through version 2026.04-rc3 are affected. U-Boot is the de facto bootloader for a vast ecosystem of ARM, PowerPC, MIPS, and x86 embedded systems—including development boards, consumer routers, industrial controllers, and security appliances. Any device shipping with an unpatched U-Boot build from this release range is potentially vulnerable if it is reachable over a network during the boot sequence.

Exploitability

The vulnerability is highly exploitable with a CVSS 3.1 score of 7.5 (HIGH). The attack vector is network-based with no authentication or user interaction required, and the precondition of network adjacency is common in most deployed scenarios. Exploitation requires only the ability to send a single crafted TCP packet, making the barrier to entry extremely low. Tools to generate malformed TCP packets are trivial to construct. No exploit is known to have been publicly disclosed or weaponized, but the simplicity of the attack means weaponization risk is elevated.

Remediation

Apply updates released after 2026.04-rc3 once available from DENX. Verify the specific patch version against the vendor's official advisory before deployment. As an interim measure, restrict network access to devices during boot—if possible via network segmentation, firewall rules, or physical isolation. Disable or review the implications of CONFIG_LMB in your build configuration, as this setting controls whether the vulnerability can escalate beyond denial of service into memory corruption. Test patches in a controlled environment before production rollout.

Patch guidance

Monitor the DENX U-Boot repository and release notes for versions beyond 2026.04-rc3. Patches will likely target the tcp_rx_state_machine() function to add proper bounds checking on the data offset field and enforce tcp_seg_in_wnd() validation before processing user data. When patches are released, verify version numbers against the official advisory and perform integrity checks on downloaded binaries. Coordinate patching with your board support package (BSP) maintainers if you rely on customized U-Boot builds. Test patches in staging environments that mirror production hardware and network conditions.

Detection guidance

Monitor network traffic for malformed TCP packets with suspicious data offset values directed at devices during their boot sequence. If you have access to device logs or serial console output, watch for unexpected crashes or resets immediately following network initialization. Check U-Boot version strings on deployed devices via DHCP request inspection, serial console access, or firmware interrogation. Perform a software bill of materials (SBOM) audit of all embedded systems to identify which devices carry U-Boot 2026.04-rc3 or earlier. Alert on any abnormal boot failures that correlate with network traffic patterns, particularly repeated packet bursts from untrusted subnets.

Why prioritize this

This is a HIGH-severity vulnerability affecting a critical system component (the bootloader) with trivial exploitability and no authentication barriers. The denial-of-service impact directly threatens device availability and can render systems inoperable. Although not yet in the CISA KEV catalog, the low attack complexity and high potential impact on distributed embedded systems warrant immediate investigation and patching in organizations with significant U-Boot deployments. Prioritize devices in sensitive environments (OT, IoT infrastructure, security appliances) and those exposed to untrusted networks.

Risk score, explained

The CVSS 3.1 score of 7.5 reflects a network-accessible vulnerability with low attack complexity and no privilege or user interaction requirements. The severity is constrained to availability impact (boot denial) rather than confidentiality or integrity under normal configurations. However, the score does not capture the real-world severity in embedded systems contexts: bootloader compromise can be a vector for persistent attacks if memory corruption is triggered. Organizations should consider this a higher-priority target than the base score alone suggests due to the criticality of the affected component.

Frequently asked questions

Does this vulnerability allow remote code execution?

No. In the standard configuration, this vulnerability causes a denial of service by crashing the bootloader during packet processing. However, when CONFIG_LMB is disabled, the memcpy() with an oversized length parameter can corrupt adjacent memory, which may potentially be exploited for code execution in specific scenarios. Standard configurations are not believed to enable remote code execution.

Can this vulnerability be triggered after a device has fully booted?

Technically, the vulnerability exists in the TCP stack during bootloader execution. Once a device has finished booting and control has passed to the operating system, the U-Boot code is typically no longer active. However, some systems support U-Boot network access or recovery modes that remain active post-boot; verify your device's specific implementation.

What is the difference between a release version and a release candidate (rc)?

Version 2026.04-rc3 is a release candidate—a pre-release version tested before the final 2026.04 release. Affected versions include all rc versions up to and including rc3. Once the final 2026.04 release is published, you must check the official advisory to confirm whether it includes the fix or remains vulnerable.

How can we identify which of our embedded devices run U-Boot?

U-Boot version and build information is often visible during device boot on serial consoles or in bootloader banners. For networked devices, some may expose bootloader information via DHCP responses or HTTP headers. A comprehensive SBOM audit of your device fleet combined with vendor documentation is the most reliable approach. Contact your board support package provider or OEM if you are uncertain.

This analysis is based on the published CVE description and CVSS data available as of the publication date. Patch availability, version numbers, and specific vendor timelines are subject to change; consult the official DENX U-Boot advisory for authoritative guidance. This document does not constitute security advice and is provided for informational purposes only. Organizations should validate all information against their own systems and threat models before taking remedial action. No exploit code or weaponized proof-of-concept is included or recommended in this analysis. Source: NVD (public-domain), retrieved 2026-08-17. Analysis generated by SEC.co (claude-haiku-4-5).