Bug 2458889 (CVE-2026-6420)

Summary: CVE-2026-6420 keylime: Keylime: Security bypass due to hardcoded TPM quote nonce
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: rhel-process-autobot, security-response-team, watson-tool-maintainers
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in Keylime. An attacker with root access on an enrolled monitored machine, where the Keylime agent runs, can exploit a vulnerability in the Keylime verifier. The verifier uses a hardcoded challenge nonce for Trusted Platform Module (TPM) quote attestation instead of a cryptographically random value. This allows the attacker to stockpile valid TPM quotes and replay them to evade detection after compromising the system. This issue affects only the push model deployment.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2467584    
Bug Blocks:    
Deadline: 2026-05-06   

Description OSIDB Bzimport 2026-04-16 06:03:47 UTC
Keylime verifier uses a hardcoded challenge nonce for TPM quote attestation instead of generating a cryptographically random value. An attacker with root access on an enrolled monitored machine (where the Keylime agent runs) can stockpile valid TPM quotes using tpm2_quote with the known nonce during the push attestation timeout window (defaulting to 10 seconds). The attacker can then compromise the system and replay these quotes to evade detection. Only the push model deployment is affected, the pull model does not use the affected code.

Requirements for exploitation: Root access on a legitimate, monitored machine (running a previously enrolled Keylime agent). The attacker stops the agent, generates quotes via tpm2_quote with the known nonce (system still clean, so PCR values are trusted), starts a replacement agent before the ~10s timeout expires, then compromises the system. Each stockpiled quote is usable once (clock monotonicity check prevents reuse).