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&amp;#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]

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:*:*:*:*:*:*