Track vulnerabilities like this one.
Sign up free to get alerted when software you use is affected.
Linux kernel <6.6.157.1-1 may misread TPM status
published 1 month ago
Summary
Versions of the Linux kernel older than 6.6.157.1-1 can incorrectly treat a failed read from a TPM (hardware security chip) as a successful status. This can cause the system to think a security operation succeeded when it actually failed. Updating the kernel to the latest version fixes the problem.
What to do
- Update kernel to version 6.6.157.1-1.
Affected software
| Ecosystem | Vendor | Product | Affected versions |
|---|---|---|---|
| Azure Linux:3 | azure | kernel | <= 6.6.150.1-1 |
| Azure Linux:3 | – | kernel |
<= 6.6.152.1-1 < 6.6.157.1-1 Fix: upgrade to 6.6.157.1-1
|
Original advisory text
CVE-2026-90070 affecting package kernel for versions less than 6.6.157.1-1
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.
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.
References
Timeline
Published17 Sep 2026
Updated2 Oct 2026
First seen23 Sep 2026
Sources
AZL-102855 · OSV
Track software like this
Free during beta