CVE-2022-48997

Source
https://cve.org/CVERecord?id=CVE-2022-48997
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48997.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2022-48997
Downstream
Related
Published
2024-10-21T20:06:12.787Z
Modified
2026-03-20T12:22:05.703758Z
Summary
char: tpm: Protect tpm_pm_suspend with locks
Details

In the Linux kernel, the following vulnerability has been resolved:

char: tpm: Protect tpmpmsuspend with locks

Currently tpm transactions are executed unconditionally in tpmpmsuspend() function, which may lead to races with other tpm accessors in the system.

Specifically, the hwrandom tpm driver makes use of tpmget_random(), and this function is called in a loop from a kthread, which means it's not frozen alongside userspace, and so can race with the work done during system suspend:

tpm tpm0: tpmtransmit: tpmrecv: error -52 tpm tpm0: invalid TPMSTS.x 0xff, dumping stack for forensics CPU: 0 PID: 1 Comm: init Not tainted 6.1.0-rc5+ #135 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-20220807005459-localhost 04/01/2014 Call Trace: tpmtisstatus.cold+0x19/0x20 tpmtransmit+0x13b/0x390 tpmtransmitcmd+0x20/0x80 tpm1pmsuspend+0xa6/0x110 tpmpm_suspend+0x53/0x80 __pnpbussuspend+0x35/0xe0 _devicesuspend+0x10f/0x350

Fix this by calling tpmtrygetops(), which itself is a wrapper around tpmchip_start(), but takes the appropriate mutex.

[Jason: reworked commit message, added metadata]

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/48xxx/CVE-2022-48997.json",
    "cna_assigner": "Linux"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
e891db1a18bf11e02533ec2386b796cfd8d60666
Fixed
d699373ac5f3545243d3c73a1ccab77fdef8cec6
Fixed
4e0d6c687c925e27fd4bc78a2721d10acf5614d6
Fixed
571b6bbbf54d835ea6120f65575cb55cd767e603
Fixed
25b78bf98b07ff5aceb9b1e24f72ec0236c5c053
Fixed
23393c6461422df5bf8084a086ada9a7e17dc2ba

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-48997.json"