| Gói / sản phẩm | Phiên bản bị ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| github.com/google/go-attestation | < 0.6.1mọi phiên bản | 0.6.1 |
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.
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.
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.
All versions through commit f877374 (2026-05-15).
Pull request: https://github.com/google/go-attestation/pull/502
SignatureHeaderSize must not exceed remaining list spaceSignatureHeaderSize bytes before both entry loopsTestParseEfiSignatureListNonZeroSignatureHeaderSizeBạn đang dùng một trong các sản phẩm này? Quét site để biết có đang lộ phiên bản có lỗ hổng không.
Quét site miễn phí