CVE-2022-48997
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/10/2024
Last modified:
07/11/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
char: tpm: Protect tpm_pm_suspend with locks<br />
<br />
Currently tpm transactions are executed unconditionally in<br />
tpm_pm_suspend() function, which may lead to races with other tpm<br />
accessors in the system.<br />
<br />
Specifically, the hw_random tpm driver makes use of tpm_get_random(),<br />
and this function is called in a loop from a kthread, which means it&#39;s<br />
not frozen alongside userspace, and so can race with the work done<br />
during system suspend:<br />
<br />
tpm tpm0: tpm_transmit: tpm_recv: error -52<br />
tpm tpm0: invalid TPM_STS.x 0xff, dumping stack for forensics<br />
CPU: 0 PID: 1 Comm: init Not tainted 6.1.0-rc5+ #135<br />
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-20220807_005459-localhost 04/01/2014<br />
Call Trace:<br />
tpm_tis_status.cold+0x19/0x20<br />
tpm_transmit+0x13b/0x390<br />
tpm_transmit_cmd+0x20/0x80<br />
tpm1_pm_suspend+0xa6/0x110<br />
tpm_pm_suspend+0x53/0x80<br />
__pnp_bus_suspend+0x35/0xe0<br />
__device_suspend+0x10f/0x350<br />
<br />
Fix this by calling tpm_try_get_ops(), which itself is a wrapper around<br />
tpm_chip_start(), but takes the appropriate mutex.<br />
<br />
[Jason: reworked commit message, added metadata]
Impact
Base Score 3.x
4.70
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.1 (including) | 5.4.226 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.158 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.82 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.0.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.1:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.1:rc7:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/23393c6461422df5bf8084a086ada9a7e17dc2ba
- https://git.kernel.org/stable/c/25b78bf98b07ff5aceb9b1e24f72ec0236c5c053
- https://git.kernel.org/stable/c/4e0d6c687c925e27fd4bc78a2721d10acf5614d6
- https://git.kernel.org/stable/c/571b6bbbf54d835ea6120f65575cb55cd767e603
- https://git.kernel.org/stable/c/d699373ac5f3545243d3c73a1ccab77fdef8cec6



