CVE-2026-12681: CWE-1285 Improper validation of specified index, position, or offset in input in Google go-attestation
## Summary `parseEfiSignatureList()` in `attest/internal/events.go` does not skip `SignatureHeaderSize` vendor bytes before reading `EFI_SIGNATURE_LIST` signature entries, violating UEFI specification section 31.4.1. ## Impact For `hashSHA256SigGUID` lists, attacker-controlled vendor header bytes are appended directly to the trusted SHA256 hash list. A crafted TPM event log can inject arbitrary SHA256 hashes into the verifier's trusted measurement database, allowing a remote attestation verifier to accept a compromised boot state as legitimate — breaking the core integrity guarantee of remote attestation. ## Root Cause After `binary.Read(&signatures.Header)` reads 28 bytes, `buf` points to the start of the `SignatureHeaderSize` vendor bytes. Both entry loops start at `sigOffset := 0` instead of `sigOffset := SignatureHeaderSize`, causing vendor bytes to be read as signature entries. ## Affected versions All versions through commit `f877374` (2026-05-15). ## Fix Pull request: https://github.com/google/go-attestation/pull/502 - Add bound check: `SignatureHeaderSize` must not exceed remaining list space - Skip `SignatureHeaderSize` bytes before both entry loops - Regression test: `TestParseEfiSignatureListNonZeroSignatureHeaderSize`
AI Analysis
Technical Summary
The vulnerability in Google go-attestation (CVE-2026-12681) arises from improper validation of specified index, position, or offset in input within the parseEfiSignatureList() function. Specifically, the function does not advance the buffer past vendor bytes before processing entries. For hashSHA256SigGUID lists, this enables an attacker to inject attacker-controlled vendor header bytes appended to the trusted SHA256 hash list. Consequently, a crafted TPM event log can insert arbitrary SHA256 hashes into the verifier's trusted measurement database, allowing a remote attestation verifier to mistakenly accept a compromised boot state. This affects go-attestation versions prior to 0.6.1.
Potential Impact
An attacker can exploit this vulnerability to inject arbitrary SHA256 hashes into the trusted measurement database used by remote attestation verifiers. This can cause the verifier to accept a compromised boot state as trusted, undermining the integrity guarantees of the attestation process. The vulnerability has a high CVSS 4.0 score of 8.9, indicating significant potential impact on system trustworthiness and security.
Mitigation Recommendations
No official patch or remediation level has been published yet. The affected versions are all go-attestation releases prior to 0.6.1. Users should upgrade to version 0.6.1 or later once available. Until then, monitor the vendor advisory for updates and avoid relying on vulnerable versions for critical attestation tasks.
CVE-2026-12681: CWE-1285 Improper validation of specified index, position, or offset in input in Google go-attestation
Description
## Summary `parseEfiSignatureList()` in `attest/internal/events.go` does not skip `SignatureHeaderSize` vendor bytes before reading `EFI_SIGNATURE_LIST` signature entries, violating UEFI specification section 31.4.1. ## Impact For `hashSHA256SigGUID` lists, attacker-controlled vendor header bytes are appended directly to the trusted SHA256 hash list. A crafted TPM event log can inject arbitrary SHA256 hashes into the verifier's trusted measurement database, allowing a remote attestation verifier to accept a compromised boot state as legitimate — breaking the core integrity guarantee of remote attestation. ## Root Cause After `binary.Read(&signatures.Header)` reads 28 bytes, `buf` points to the start of the `SignatureHeaderSize` vendor bytes. Both entry loops start at `sigOffset := 0` instead of `sigOffset := SignatureHeaderSize`, causing vendor bytes to be read as signature entries. ## Affected versions All versions through commit `f877374` (2026-05-15). ## Fix Pull request: https://github.com/google/go-attestation/pull/502 - Add bound check: `SignatureHeaderSize` must not exceed remaining list space - Skip `SignatureHeaderSize` bytes before both entry loops - Regression test: `TestParseEfiSignatureListNonZeroSignatureHeaderSize`
CVSS v4.0
Score 8.9high
Affected software
go-attestation
pkg:golang/github.com/google/go-attestationRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in Google go-attestation (CVE-2026-12681) arises from improper validation of specified index, position, or offset in input within the parseEfiSignatureList() function. Specifically, the function does not advance the buffer past vendor bytes before processing entries. For hashSHA256SigGUID lists, this enables an attacker to inject attacker-controlled vendor header bytes appended to the trusted SHA256 hash list. Consequently, a crafted TPM event log can insert arbitrary SHA256 hashes into the verifier's trusted measurement database, allowing a remote attestation verifier to mistakenly accept a compromised boot state. This affects go-attestation versions prior to 0.6.1.
Potential Impact
An attacker can exploit this vulnerability to inject arbitrary SHA256 hashes into the trusted measurement database used by remote attestation verifiers. This can cause the verifier to accept a compromised boot state as trusted, undermining the integrity guarantees of the attestation process. The vulnerability has a high CVSS 4.0 score of 8.9, indicating significant potential impact on system trustworthiness and security.
Mitigation Recommendations
No official patch or remediation level has been published yet. The affected versions are all go-attestation releases prior to 0.6.1. Users should upgrade to version 0.6.1 or later once available. Until then, monitor the vendor advisory for updates and avoid relying on vulnerable versions for critical attestation tasks.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- Date Reserved
- 2026-06-19T05:49:21.869Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6a3b3542eed863c81e0f35dc
Added to database: 06/24/2026, 01:39:14 UTC
Last enriched: 06/24/2026, 01:54:10 UTC
Last updated: 09/22/2026, 01:52:41 UTC
Views: 123
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.