The flaw, identified through manual static analysis, involves a stack-based overflow in a function called
EkCheckCurrentCert, which is called from another function
TPM2_CreatePrimary with an endorsement key (EK) certificate stored in non-volatile storage.
"A TLV (type-length-value) structure is parsed and copied onto the parent stack frame," Cohen explained in his mailing list post. "Unfortunately, there are missing bounds checks, and a specially crafted certificate can lead to a stack overflow."
Unlike some CPUs, the PSP doesn't implement common exploit mitigation techniques such as stack cookies, No-eXecute (NX) flags, or address space layout randomization (ASLR), making exploitation trivial.
Cohen's post described the vulnerability as remote code execution flaw. However, physical access is a prerequisite.
In an email to The Register, Dino Dai Zovi, cofounder and CTO of security biz Capsule8, said the vulnerability isn't quite subject to remote execution "since the crafted certificate that exploits the vulnerability needs to be written to NVRAM, the attacker must already have privileged access to the host or physical access. It would let an attacker bypass secure/trusted boot, which is performed by the TPM."
An AMD spokesperson told The Register that an attacker would first have to gain access to the motherboard and then modify SPI-Flash before the issue could be exploited. But given those conditions, the attacker would have access to the information protected by the TPM, such as cryptographic keys.
AMD's spokesperson said the chipmaker plans to address the vulnerability for a limited number of firmware versions. BIOS updates from OEMs are supposed to be made available later this month.