CVE-2024-29039
Critical · 9.0CVSS
9.0
EPSS
1.0%
Published
Jun 28, 2024
CISA due date
—
Cloudanix analysis
A flaw in a widely used TPM utility can make it report that a computer's security measurements are correct even when they have been tampered with, potentially allowing attackers to hide unauthorized changes.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Data Tampering
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Improper validation of TPML_PCR_SELECTION structures in PCR input files allows tpm2_checkquote to map digest values to incorrect PCR slots and banks, producing a falsified representation of TPM PCR state.
Why it matters to the business
Organizations relying on TPM-based remote attestation for boot integrity, measured boot, or device identity may accept compromised systems as trustworthy, increasing risk of undetected tampering in high-security environments.
How an attack unfolds
An attacker supplies a crafted PCR input file containing a manipulated TPML_PCR_SELECTION structure to tpm2_checkquote; the tool fails to validate the selection against the actual quote, causing incorrect digest-to-PCR mapping and a misleading attestation result that can be presented to relying parties.
How to fix it
Upgrade tpm2-tools to the commit c6e182cf690ca0022b77fe7d3c174659917a7e7e or later (corresponding to the 5.7 release) and rebuild any dependent tooling or containers.
How to confirm the fix worked
Run tpm2_checkquote against known-good and deliberately malformed PCR selection files; confirm that malformed selections are rejected and that output mappings match expected PCR banks after the upgrade.
Typical attack path
- Obtain or generate a valid TPM quote from a target system
- Craft a PCR input file with altered TPML_PCR_SELECTION values
- Invoke tpm2_checkquote with the malicious input file
- Receive and forward the incorrectly validated attestation result to a verifier
How to detect it
Search command-line histories, scripts, and logs for invocations of tpm2_checkquote that reference externally supplied PCR selection files; look for unexpected mismatches between reported PCR banks and the quote structure in attestation logs.
What your security team should do
- Immediately update all tpm2-tools installations to the fixed commit and verify the version in build pipelines and runtime images
- Review any attestation or integrity-checking workflows that consume tpm2_checkquote output and add independent validation of PCR selections where possible
- Monitor upstream tpm2-software repositories for related fixes in dependent libraries
The record
tpm2 is the source repository for the Trusted Platform Module (TPM2.0) tools. This vulnerability allows attackers to manipulate tpm2_checkquote outputs by altering the TPML_PCR_SELECTION in the PCR input file. As a result, digest values are incorrectly mapped to PCR slots and banks, providing a misleading picture of the TPM state. This issue has been patched in version 5.7.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | tpm2-tools | 0 | 5.2-4.el9 |
| Debian:11 | tpm2-tools | 0 | No fix |
| Debian:12 | tpm2-tools | 0 | No fix |
| Debian:13 | tpm2-tools | 0 | 5.7-1 |
| Mageia:9 | tpm2-tools | 0 | 5.5.1-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | tpm2-tools | 0 | 0:5.2-4.el9 |
| Red Hat:enterprise_linux:9::appstream | tpm2-tools-debuginfo | 0 | 0:5.2-4.el9 |
| Red Hat:enterprise_linux:9::appstream | tpm2-tools-debugsource | 0 | 0:5.2-4.el9 |
| Red Hat:enterprise_linux:9::baseos | tpm2-tools | 0 | 0:5.2-4.el9 |
| Red Hat:enterprise_linux:9::baseos | tpm2-tools-debuginfo | 0 | 0:5.2-4.el9 |
| Red Hat:enterprise_linux:9::baseos | tpm2-tools-debugsource | 0 | 0:5.2-4.el9 |
| Rocky Linux:9 | tpm2-tools | 0 | 0:5.2-4.el9 |
| SUSE:Linux Enterprise Micro 5.3 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| SUSE:Linux Enterprise Micro 5.4 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| SUSE:Linux Enterprise Micro 5.5 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| Ubuntu:20.04:LTS | tpm2-tools | 0 | No fix |
| Ubuntu:22.04:LTS | tpm2-tools | 0 | No fix |
| Ubuntu:24.04:LTS | tpm2-tools | 0 | No fix |
| Ubuntu:24.10 | tpm2-tools | 0 | No fix |
| Ubuntu:25.04 | tpm2-tools | 0 | No fix |
| Ubuntu:25.10 | tpm2-tools | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | tpm2-tools | 0 | No fix |
| openSUSE:Leap 15.5 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| openSUSE:Leap Micro 5.3 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| openSUSE:Leap Micro 5.4 | tpm2.0-tools | 0 | 5.2-150400.6.3.1 |
| openSUSE:Tumbleweed | tpm2.0-tools | 0 | 5.7-1.1 |
Related vulnerabilities
- CVE-2024-29038 tpm2-tools is the source repository for the Trusted Platform Module (TPM2.0) tools. Also affects tpm2-tools
- CVE-2026-50106 When NLnet Labs Unbound up to and including version 1.26.1 is configured with both a root… CWE-807
- CVE-2026-111748 AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. CWE-807
- CVE-2026-111869 A vulnerability was identified in makeplane plane up to 1.4.2. CWE-807
- CVE-2026-53614 util-linux is a random collection of Linux utilities. CWE-807
- CVE-2026-87479 Insufficient policy enforcement in Extensions in Google Chrome prior to 153.0.8010.36… CWE-807
- CVE-2026-82533 DeepSeek Harness before 0.1.2-alpha.1 contains an authentication bypass vulnerability… CWE-807
- CVE-2026-66768 SAP GUI for Java does not correctly enforce the trust level policy for certain functions… CWE-807