Cloudanix VulnDB

CVE-2024-29039

Critical · 9.0

CVSS

9.0

EPSS

1.0%

Published

Jun 28, 2024

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Obtain or generate a valid TPM quote from a target system
  2. Craft a PCR input file with altered TPML_PCR_SELECTION values
  3. Invoke tpm2_checkquote with the malicious input file
  4. 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