GHSA-9r4w-jg96-92mv

Suggest an improvement
Source
https://github.com/advisories/GHSA-9r4w-jg96-92mv
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-9r4w-jg96-92mv/GHSA-9r4w-jg96-92mv.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-9r4w-jg96-92mv
Aliases
Downstream
CGA (42)
MINI (2)
Published
2026-06-12T15:04:43Z
Modified
2026-09-12T05:15:04Z
Severity
  • 6.8 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N CVSS Calculator
  • 8.9 (High) CVSS_V4 - 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X CVSS Calculator
Summary
Go-Attestation: Hash injection into trusted measurement list via unskipped SignatureHeaderSize vendor bytes in parseEfiSignatureList()
Details

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
Database specific
{
    "cwe_ids":  [
        "CWE-1285",
        "CWE-20"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-06-12T15:04:43Z",
    "nvd_published_at":  "2026-06-24T02:16:28Z",
    "severity":  "HIGH"
}
References

Affected packages

Go / github.com/google/go-attestation

Package

Name
github.com/google/go-attestation
View open source insights on deps.dev
Purl
pkg:golang/github.com/google/go-attestation

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
0.6.1

Database specific

last_known_affected_version_range
"<= 0.6.0"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/06/GHSA-9r4w-jg96-92mv/GHSA-9r4w-jg96-92mv.json"