CVE-2026-54333
nicheOut-of-Bounds Stack Write in UEFI Firmware Parser Tiano Decompression (pre-1.14)
UEFI Firmware Parser versions before 1.14 contain an out-of-bounds stack write in MakeTable() within the Tiano/EFI decompression code: bit-length values read from a compressed firmware bitstream are not validated against the expected 0-16 range, so writes run past the stack-allocated Count[17] array and related decode tables. The flaw is triggered simply by parsing a crafted Tiano- or EFI-compressed firmware section through the normal CompressedSection.process() to efi_compressor.TianoDecompress() to ReadPTlen()/MakeTable() path, requiring no privileges or interaction beyond opening the malicious image. The resulting stack corruption deterministically crashes the parsing process and may permit code execution depending on build and runtime details, reflected in a critical 9.8 CVSS score. Anyone using the uefi_firmware package or CLI below 1.14 — including firmware-analysis pipelines and services that ingest untrusted BIOS or UEFI images — is affected. The issue is fixed in version 1.14; there is no known public PoC, it is not in CISA's KEV, and no exploitation in the wild has been reported.
What to do: Upgrade to UEFI Firmware Parser 1.14 or later, which validates the bit-length values before building decode tables. Until upgraded, only parse untrusted or third-party firmware dumps in sandboxed VMs or containers with minimal privileges, and treat crashes while decompressing Tiano/EFI sections as potential exploitation. Audit any automated pipelines (CI, malware triage, BIOS-upload analysis services) that feed external firmware images into the parser and ensure they run the fixed version.
| UEFI Firmware Parser project UEFI Firmware Parser (uefi_firmware Python package / CLI) | all versions prior to 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, MakeTable() in uefi_firmware/compression/Tiano/Decompress.c does not validate that bit-length values read from a crafted Tiano or EFI compressed firmware bitstream remain within the expected range from 0 through 16. The normal CompressedSection.process() to efi_compressor.TianoDecompress() to TianoDecompress() to ReadPTLen() to MakeTable() parsing path can consequently write beyond the stack-allocated Count[17] array and related decode tables. The resulting stack corruption deterministically crashes the parsing process and may permit code execution 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.