tpm: st33zp24: Return zero on status read failure
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.110, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: tpm: st33zp24: Return zero on status read failure st33zp24_status() ignores the result of the transport read and returns data even when no byte was received. The I2C transport, for example, skips i2c_master_recv() when the register-select write is short or fails, leaving data uninitialized. The resulting stack value can be interpreted as TPM_STS flags and let status checks complete spuriously. The status callback cannot propagate a transport error. Return zero unless recv() reports exactly one byte. With no status bits set, callers retry or take their existing timeout or error path instead of acting on an invalid status value. This issue was found by a static analysis checker and confirmed by manual source review.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in d732cfc4befe28f02ec82ed5fd2bc2a21fbabd42; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 4973e8386257eed10e5433a94a53bcc6ec37d2a1; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 981307e2e8a930da492c2bcf763865c47c2a5165; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 1bfd5c54e40704ce93d128a25de3d8dd772bf183; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 38c26fe4522963a91d4fb02c844d8faa740fe9d1; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 14feaa498c20c1b7ddefe27de5329aaff822cc0d; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in e6d7d9b665419cda3e9f91030d81c9f8ba71e51d; From 251a7b08213af82e40e4a70cac056e245853c410 · fixed in 8b92687708f5ef980de01c2042dbd76d11f78547
- Linux Linux
3.9
- KernelLinux
From 3.9.0 · fixed in 5.10.270; From 5.11.0 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.110; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6
References 8
git.kernel.org
- stable/c/d732cfc4befe28f02ec82ed5fd2bc2a21fbabd42
- stable/c/4973e8386257eed10e5433a94a53bcc6ec37d2a1
- stable/c/981307e2e8a930da492c2bcf763865c47c2a5165
- stable/c/1bfd5c54e40704ce93d128a25de3d8dd772bf183
- stable/c/38c26fe4522963a91d4fb02c844d8faa740fe9d1
- stable/c/14feaa498c20c1b7ddefe27de5329aaff822cc0d
- stable/c/e6d7d9b665419cda3e9f91030d81c9f8ba71e51d
- stable/c/8b92687708f5ef980de01c2042dbd76d11f78547