Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCompromise endpoint boot chain or attestation channel
-
DeliveryCraft EFI_SIGNATURE_LIST with hashSHA256SigGUID and malicious vendor header
-
ExploitSubmit TPM event log to verifier
-
ExecutionparseEfiSignatureList reads vendor bytes as trusted hash
-
PersistVerifier accepts compromised boot state as legitimate
-
ImpactAttacker retains foothold on attested-trusted host
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Hardware permission validation
|
| Exploitation Conditions | Exploitation requires that a service consume go-attestation (through 0.6.0) as a remote attestation verifier and parse an EFI_SIGNATURE_LIST structure - typically delivered inside a TCG TPM event log - that originates from a host the attacker controls or can tamper with in transit; the malicious list must specify hashSHA256SigGUID as its SignatureType and a non-zero SignatureHeaderSize whose vendor bytes encode the attacker-chosen 16-byte GUID and 32-byte SHA256 hash. The attack is limited to verifier deployments that actually trust parsed Secure Boot databases for measurement decisions, requires the attacker to produce a well-formed event log that survives surrounding parsers (raising AC to High), and does not apply to platforms that ignore EFI signature lists or that pin trusted hashes out-of-band; no authentication, user interaction, or local access is required beyond control of the submitted event log. |
| Impact | Risk depends heavily on deployment: in any architecture where a verifier accepts attestation evidence from an untrusted or remote endpoint (the canonical use case for this library), the published CVSS:4.0 vector AV:N/AC:H/AT:N/PR:N/UI:N with VI:H and SI:H is realistic - there is no authentication or user interaction, but crafting a valid EFI_SIGNATURE_LIST that survives surrounding parsers raises complexity. Impact is squarely on integrity of attestation decisions (verifier trusts a compromised boot), with no confidentiality or availability loss, which matches the published 8.9 score. There is no CISA KEV listing, no EPSS score, and no public exploit identified at time of analysis, so this is a high-severity logic flaw with no evidence of in-the-wild abuse yet - but because it directly defeats the trust anchor of remote attestation, treat it as a priority for any service that consumes go-attestation event logs. Note one inconsistency worth verifying: the NVD-style description says "through 0.6.0" while the GHSA lists "<= 0.5.0 vulnerable, fixed in: None" yet the references include a v0.6.1 release tag and a merged patch commit - operators should confirm fixed-version pinning against the upstream release. |
| Exploit ScenarioDerived | An attacker controlling a target endpoint (or a man-in-the-middle on the attestation channel) crafts a TPM event log containing an EFI_SIGNATURE_LIST whose SignatureHeader vendor region encodes a fake 16-byte GUID followed by the SHA256 hash of the attacker's tampered bootloader. When the verifier built on go-attestation parses that list, the vendor bytes are interpreted as the first signature entry, the tampered hash is added to the trusted measurement database, and the verifier subsequently accepts the compromised boot state as legitimate. No public exploit identified at time of analysis, but the regression test TestParseEfiSignatureListVendorHeaderNotTrusted in the fix commit demonstrates the exact byte layout needed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Trusted measurement-list poisoning in Google go-attestation through 0.6.0 lets a remote actor who controls a TPM event log fed to an attestation verifier inject arbitrary SHA256 hashes into the verifier's trusted hash database. Because parseEfiSignatureList() never advances past the EFI_SIGNATURE_LIST SignatureHeaderSize vendor bytes, those attacker-chosen bytes are accepted as legitimate hash entries, allowing a compromised boot state to be attested as healthy. No public exploit identified at time of analysis, but the fix is upstream in v0.6.1 and the root cause is documented in GHSA-9r4w-jg96-92mv.
RemediationAI
Upstream fix available in go-attestation v0.6.1 (https://github.com/google/go-attestation/releases/tag/v0.6.1) via commit b6e905e7ae52937f02b5ca494dd1c6a3ac7a1003, which adds a bound check rejecting SignatureHeaderSize values that meet or exceed the remaining list space and seeks past SignatureHeaderSize vendor bytes before both the certificate and hash entry loops; update go.mod to require at least v0.6.1 and rebuild and redeploy any verifier services. Review the advisory at https://github.com/google/go-attestation/security/advisories/GHSA-9r4w-jg96-92mv for full context. Until the upgrade is rolled out, compensating controls include refusing attestation evidence from untrusted endpoints, pinning the set of acceptable PCR measurements and SHA256 hashes out-of-band rather than relying on the parsed Secure Boot db, and rejecting event logs whose EFI_SIGNATURE_LIST entries contain a non-zero SignatureHeaderSize - the side effect is that some legitimate firmware-vendor event logs that legitimately populate the vendor header region will be discarded and may need manual exception handling.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
go-attestation is Google's Go library for TPM-based platform and remote attestation, commonly consumed by verifier services that ingest a measured-boot TCG event log and validate EFI Secure Boot signature databases (db/dbx/PK/KEK) embedded in those events. The flaw lives in attest/internal/events.go parseEfiSignatureList(), which parses EFI_SIGNATURE_LIST structures defined by UEFI specification section 31.4.1. Per spec, after the 28-byte fixed header there is a vendor-defined SignatureHeader region of SignatureHeaderSize bytes that must be skipped before signature entries begin; the buggy code initialized sigOffset to 0 for both the cert and hash entry loops, treating those vendor bytes as the first entry. For hashSHA256SigGUID lists, 48-byte entries (16-byte GUID + 32-byte hash) are emitted, so attacker-supplied vendor bytes become trusted hashes. This is CWE-1285 (Improper Validation of Specified Index, Position, or Offset) and only the single CPE cpe:2.3:a:google:go-attestation is affected.
Know when Go Attestation gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
Verifier ingests remote event log so AV:N/PR:N/UI:N; crafting a valid EFI_SIGNATURE_LIST that survives parsing raises AC:H; only integrity of attestation decisions is impacted.
Primary rating from Vendor (Google).
CVSS VectorVendor: Google
DescriptionCVE.org
Improper Validation of Specified Index, Position, or Offset in Input vulnerability in Google go-attestation. parseEfiSignatureList() does not advance the buffer past vendor bytes before reading entries. For hashSHA256SigGUID lists, this allows attacker-controlled vendor header bytes to be appended to the trusted SHA256 hash list. A crafted TPM event log could inject arbitrary SHA256 hashes into the verifier's trusted measurement database, enabling a remote attestation verifier to accept a compromised boot state. This issue affects go-attestation: through 0.6.0.
Executive ViewAI
Google go-attestation versions through 0.6.0 allow remote attackers to poison the trusted measurement list, causing compromised boot states to be incorrectly attested as legitimate. Organizations relying on this library for secure boot verification face integrity failures that could enable execution of unauthorized code in supposedly hardened systems.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
EUVD-2026-38641
GHSA-9r4w-jg96-92mv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB