{"id":"GHSA-9r4w-jg96-92mv","title":"Go-Attestation: Hash injection into trusted measurement list via unskipped SignatureHeaderSize vendor bytes in parseEfiSignatureList()","summary":"Go-Attestation: Hash injection into trusted measurement list via unskipped SignatureHeaderSize vendor bytes in parseEfiSignatureList()","severity":"medium","cvss":6.8,"cwe":["CWE-20"],"vendor":"google","product":"github.com/google/go-attestation","ecosystem":"go","affected":["github.com/google/go-attestation <= 0.5.0"],"published":"2026-06-12","updated":"2026-06-12","source":"GHSA","sourceUrl":"https://github.com/advisories/GHSA-9r4w-jg96-92mv","references":[{"url":"https://github.com/google/go-attestation/security/advisories/GHSA-9r4w-jg96-92mv"},{"url":"https://github.com/google/go-attestation/pull/502"},{"url":"https://github.com/google/go-attestation/commit/b6e905e7ae52937f02b5ca494dd1c6a3ac7a1003"},{"url":"https://github.com/google/go-attestation/releases/tag/v0.6.0"},{"url":"https://github.com/advisories/GHSA-9r4w-jg96-92mv"}],"tags":["ghsa","go"],"ingestedAt":"2026-07-07T15:41:59.273Z","slug":"GHSA-9r4w-jg96-92mv","body":"## Overview\n\n## Summary\n\n`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.\n\n## Impact\n\nFor `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.\n\n## Root Cause\n\nAfter `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.\n\n## Affected versions\n\nAll versions through commit `f877374` (2026-05-15).\n\n## Fix\n\nPull request: https://github.com/google/go-attestation/pull/502\n\n- Add bound check: `SignatureHeaderSize` must not exceed remaining list space\n- Skip `SignatureHeaderSize` bytes before both entry loops\n- Regression test: `TestParseEfiSignatureListNonZeroSignatureHeaderSize`\n\n## Affected packages\n\n- `github.com/google/go-attestation <= 0.5.0`\n\n## Remediation\n\nRefer to the advisory for the patched release.","depth":"sunlit","depthScore":37,"depthScoreParts":{"impact":37.4,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}