CVE-2026-54334
niche1Heap Buffer Overflow in UEFI Firmware Parser Tiano Decompression (pre-1.14)
UEFI Firmware Parser (uefi-firmware-parser) before version 1.14 contains a heap out-of-bounds write (CWE-787) in the Tiano/EFI decompression path: ReadCLen() in uefi_firmware/compression/Tiano/Decompress.c reads a 9-bit count (up to 511 entries) into the 510-element mCLen heap array without enforcing the bound, corrupting adjacent heap memory. The flaw is triggered when the parser processes a crafted Tiano- or EFI-compressed section via the standard CompressedSection.process() -> efi_compressor.TianoDecompress() -> DecodeC() -> ReadCLen() route, so any workflow that parses untrusted firmware images is exposed. Impact is a deterministic crash of the parsing process and, depending on build and runtime heap layout, potential remote code execution — reflected in the critical 9.8 CVSS score (network vector, no privileges or user interaction required, high C/I/A impact), which is most relevant for services that accept firmware uploads. Affected users are developers, firmware analysts, and automated firmware-analysis pipelines or web services still running versions prior to 1.14. The issue is fixed in version 1.14; no public proof of concept exists, it is not in the CISA KEV catalog, and no exploitation is known.
What to do: Upgrade to uefi-firmware-parser 1.14 or later immediately (e.g., pip install --upgrade uefi-firmware-parser) and verify with 'pip show uefi-firmware-parser'. If you operate a service or pipeline that parses user-supplied or otherwise untrusted firmware images, ensure it uses the fixed version and run the parser in an isolated container/sandbox to limit the blast radius of malformed compressed sections. Audit logs for crashes or anomalies in parsing jobs that handled Tiano- or EFI-compressed firmware as a precaution.
| UEFI Firmware Parser project (open source) uefi-firmware-parser (Python package and bundled efi_compressor/Tiano decompression C extension) | < 1.14 (fixed in 1.14) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
UEFI Firmware Parser parses BIOS, Intel ME, and UEFI firmware structures including volumes, file systems, and files. Prior to 1.14, ReadCLen() in uefi_firmware/compression/Tiano/Decompress.c reads Number from GetBits(Sd, CBIT) with CBIT = 9 and can obtain 511 entries for the 510-element Sd->mCLen heap array because its loop does not enforce Index mCLen[Index++] = 0. The normal CompressedSection.process() to efi_compressor.TianoDecompress() to TianoDecompress() to DecodeC() to ReadCLen() parsing path therefore permits crafted Tiano or EFI compressed firmware to corrupt heap memory, deterministically crash the parsing process, and potentially execute code depending on build and runtime details. This issue is fixed in version 1.14.
- Weakness
- CWE-787
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
In the news0 stories
No ingested article mentions this CVE yet.