CVE-2024-36477: tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer
In the Linux kernel, the following vulnerability has been resolved:
tpm_tis_spi: Account for SPI header when allocating TPM SPI xfer buffer
The TPM SPI transfer mechanism uses MAX_SPI_FRAMESIZE for computing the
maximum transfer length and the size of the transfer buffer. As such, it
does not account for the 4 bytes of header that prepends the SPI data
frame. This can result in out-of-bounds accesses and was confirmed with
KASAN.
Introduce SPI_HDRSIZE to account for the header and use to allocate the
transfer buffer.
Security readout for executives and security teams
Plain-English summary
A Linux TPM-over-SPI driver allocated a transfer buffer without allowing for the four-byte SPI header. This can cause memory access outside the buffer, potentially crashing or compromising an affected system when the vulnerable driver path is exercised.
Executive priority
Treat this as a high-priority platform update for exposed embedded, appliance, or other TPM-over-SPI systems. Prioritise by confirmed driver use and local-user exposure; broad emergency action across Linux systems is unsupported by the supplied evidence.
Technical view
The tpm_tis_spi transfer code calculated both transfer length and buffer size from MAX_SPI_FRAMESIZE but omitted the four-byte header prepended to each SPI frame. KASAN confirmed out-of-bounds access. The kernel correction introduces SPI_HDRSIZE and includes it when allocating the transfer buffer.
Likely exposure
Exposure is limited to Linux systems using the TPM-over-SPI driver path. The bundle lists 6.6, 6.6.33, 6.9.4, and 6.10 as affected entries, but does not provide sufficiently clear version ranges. Distribution backports may alter applicability.
Exploitation context
The CVSS vector describes a local, low-complexity attack requiring low privileges and no user interaction, with potentially high confidentiality, integrity, and availability impact. The CVE is not listed as KEV, and the supplied sources provide no evidence of active exploitation.
Researcher notes
The memory-safety defect and correction are clearly described, and KASAN reproduced the out-of-bounds access. However, the source bundle's affected-version data is ambiguous and includes an unexplained โ0โ entry. Confirm branch ancestry and downstream backports before declaring a specific build vulnerable or fixed.
Mitigation direction
Install a vendor-supported kernel containing the SPI_HDRSIZE allocation correction or an equivalent backport.
Prioritise systems that use TPM hardware connected through SPI.
Consult the Linux distribution or device vendor for exact fixed package versions.
Restrict local access and unnecessary untrusted workloads until affected systems are updated.
Validation and detection
Determine whether each system uses the Linux TPM-over-SPI driver path.
Record installed kernel and distribution package versions.
Confirm the installed kernel includes the referenced correction or a vendor backport.
Review kernel crash and memory-safety telemetry associated with TPM SPI operations.
Retest representative TPM operations after updating.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve ยท low confidence lookup
CVE-2024-36477 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.