CVE-2026-46728 Overview
CVE-2026-46728 is a signature verification bypass in Das U-Boot versions before 2026.04. The vulnerability affects Flat Image Tree (FIT) image signature validation, where U-Boot omits the hashed-nodes property when computing the hash used to verify the signature. An attacker with the ability to supply a crafted FIT image can bypass cryptographic integrity checks and load unauthorized kernels, device trees, or ramdisks at boot. The flaw is tracked under CWE-346 (Origin Validation Error) and undermines the secure boot guarantees that FIT signing is intended to provide.
Critical Impact
Attackers can bypass FIT signature verification and execute unauthorized boot payloads on devices that rely on U-Boot verified boot.
Affected Products
- Das U-Boot versions prior to 2026.04
- Embedded and IoT devices using U-Boot FIT verified boot
- Bootloader-derived projects sharing the same FIT verification logic
Discovery Timeline
- 2026-05-16 - CVE-2026-46728 published to NVD
- 2026-05-18 - Last updated in NVD database
Technical Details for CVE-2026-46728
Vulnerability Analysis
Das U-Boot's FIT format stores a signature node containing a hashed-nodes property. This property is written by mkimage and enumerates every node the signer included in the hash calculation. During verification, U-Boot ignores the hashed-nodes property recorded by the signer. Instead, it reconstructs its own node list from the configuration's image references such as kernel, fdt, and ramdisk. Because hashed-nodes itself is not covered by the signature, a mismatch between signer intent and verifier behavior is exploitable. An attacker can craft a FIT image where the verifier's reconstructed node set produces a valid signature while the actual loaded contents differ from what was originally signed.
Root Cause
The root cause is an origin validation error in the FIT verification routine. The verifier never consults the authoritative record of what was hashed by the signer. This breaks the binding between the signature and the exact set of nodes it was computed over, violating the security property that FIT signing should enforce.
Attack Vector
Exploitation requires local access and high privileges to deliver a malicious FIT image to the bootloader, for example by writing to boot media or staging an image through a recovery path. Successful exploitation grants code execution at the bootloader trust level, with scope change affecting the integrity of subsequent operating system loads.
Details
-------
The signature node contains a property ('hashed-nodes') which lists all the
-nodes that the signature was made over. The image is walked in order and each
-tag processed as follows:
+nodes that the signature was made over. The signer (mkimage) writes this
+property as a record of what was included in the hash. During verification,
+however, U-Boot does not read 'hashed-nodes'. Instead it rebuilds the node
+list from the configuration's own image references (kernel, fdt, ramdisk,
+etc.), since 'hashed-nodes' is not itself covered by the signature. The
+rebuilt list always includes the root node, the configuration node, each
+referenced image node and its hash/cipher subnodes.
+
+The image is walked in order and each tag processed as follows:
DTB_BEGIN_NODE
The tag and the following name are included in the signature
- if the node or its parent are present in 'hashed-nodes'
+ if the node or its parent are present in the node list
DTB_END_NODE
The tag is included in the signature if the node or its parent
- are present in 'hashed-nodes'
+ are present in the node list
DTB_PROPERTY
The tag, the length word, the offset in the string table, and
- the data are all included if the current node is present in 'hashed-nodes'
+ the data are all included if the current node is present in the node list
and the property name is not 'data'.
Source: U-Boot commit 2092322b
Detection Methods for CVE-2026-46728
Indicators of Compromise
- Unexpected modifications to FIT images stored on boot partitions or update servers
- FIT images whose hashed-nodes property does not match the nodes referenced by the configuration
- Boot logs showing successful signature verification for images that fail downstream integrity checks
- Unauthorized kernels, device trees, or ramdisks loaded on devices configured for verified boot
Detection Strategies
- Audit deployed U-Boot binaries and report any version older than 2026.04
- Re-verify production FIT images offline using fit_check_sign from a patched U-Boot build
- Compare the hashed-nodes list in each FIT image against the configuration's image references for inconsistencies
Monitoring Recommendations
- Monitor build pipelines and signing infrastructure for tampering with FIT image artifacts
- Track firmware update events and correlate them with authorized release manifests
- Alert on boot-time integrity failures and any unexpected fallback to recovery images
How to Mitigate CVE-2026-46728
Immediate Actions Required
- Upgrade Das U-Boot to version 2026.04 or later on all affected devices
- Apply commit 2092322b31cc8b1f8c9e2e238d1043ae0637b241 to downstream U-Boot forks that cannot upgrade immediately
- Re-sign and redeploy FIT images using a patched mkimage and verify them with a patched U-Boot before shipping
Patch Information
The upstream fix introduces fit_config_get_hash_list() to build the signed node list consistent with the signer's intent. Review the patch in the U-Boot commit reference and the associated GitHub Security Advisory for full context. Bootloader vendors and device manufacturers should rebuild firmware images against the patched source tree.
Workarounds
- Restrict write access to boot media and FIT image storage to trusted administrators only
- Enforce hardware-rooted secure boot so that unauthorized U-Boot images cannot run even if FIT verification is bypassed
- Validate FIT images out-of-band against a known-good manifest before deployment
# Verify installed U-Boot version meets the patched baseline
strings /path/to/u-boot.bin | grep -i 'U-Boot 20'
# Re-verify a FIT image with a patched U-Boot host tool
mkimage -l image.fit
fit_check_sign -f image.fit -k signing_key.dtb
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

