Executive brief
Google's go-attestation library, used to verify the integrity of a computer's boot process, contains a flaw in how it parses security signatures. An attacker could provide a specially crafted log that tricks the system into accepting a compromised or malicious boot state as legitimate. This undermines the core security guarantee that the system is running trusted software.
Technical details
The parseEfiSignatureList() function in attest/internal/events.go fails to skip SignatureHeaderSize vendor bytes before reading EFI_SIGNATURE_LIST entries, violating the UEFI specification. Because the loop offset starts at zero instead of the header size, attacker-controlled vendor bytes are interpreted as valid SHA256 hashes. A remote attacker can provide a crafted TPM event log to inject arbitrary hashes into the verifier's trusted measurement database. This allows a compromised boot state to pass remote attestation. The issue is fixed in version 0.6.0 by adding bounds checks and correctly skipping the header bytes.
Affected products
- Google go-attestation <= 0.5.0
Timeline
- 2026-05-15: other: Last vulnerable commit f877374
- 2026-05-21: disclosed
- 2026-06-12: advisory