Executive Summary



This Alert is flagged as TOP 25 Common Weakness Enumeration from CWE/SANS. For more information, you can read this.
Summary
Title TCG TPM2.0 implementations vulnerable to memory corruption
Informations
Name VU#782720 First vendor Publication 2023-02-28
Vendor VU-CERT Last vendor Modification 2024-03-04
Severity (Vendor) N/A Revision M

Security-Database Scoring CVSS v3

Cvss vector : CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Overall CVSS Score 7.8
Base Score 7.8 Environmental Score 7.8
impact SubScore 5.9 Temporal Score 7.8
Exploitabality Sub Score 1.8
 
Attack Vector Local Attack Complexity Low
Privileges Required Low User Interaction None
Scope Unchanged Confidentiality Impact High
Integrity Impact High Availability Impact High
Calculate full CVSS 3.0 Vectors scores

Security-Database Scoring CVSS v2

Cvss vector :
Cvss Base Score N/A Attack Range N/A
Cvss Impact Score N/A Attack Complexity N/A
Cvss Expoit Score N/A Authentication N/A
Calculate full CVSS 2.0 Vectors scores

Detail

Overview

Two buffer overflow vulnerabilities were discovered in the Trusted Platform Module (TPM) 2.0 reference library specification, currently at Level 00, Revision 01.59 November 2019. An attacker who has access to a TPM-command interface can send maliciously-crafted commands to the module and trigger these vulnerabilities. This allows either read-only access to sensitive data or overwriting of normally protected data that is only available to the TPM (e.g., cryptographic keys).

Description

Trusted Platform Module (TPM) technology is a hardware-based solution that provides secure cryptographic functions to the operating systems on modern computers, making it resistant to tampering. As cloud computing and virtualization have become more popular in recent years, software-based TPM implementations have also gained popularity. TPM can be implemented in the form of Discrete, Integrated or Firmware TPM in its hardware form. The virtual TPM's exists in Hypervisor form or in a purely software-based TPM implementation e.g., swtpm. The Trusted Computing Group (TCG) is responsible for maintaining the TPM specifications, which are actively contributed to by both hardware and software manufacturers. The TCG released the TPM 2.0 specifications in October 2014 and has since revised them multiple times. The latest version, Revision 01.59, was released in November 2019. Many TPM hardware and software manufacturers use these specifications to build firmware that complies with standards and provides a secure interface to sensitive cryptographic data. TPM is employed in a variety of devices, from specialized enterprise-grade hardware to Internet of Things (IoT) appliances.

The TPM Library Specification Architecture documents "Session-based encryption" that allows a cryptographic client application to perform various operations, including those that provide Parameter Encryption capabilities. Session-based encryption may be used to ensure confidentiality of these parameters. The operating system or the client software relies on the TPM to securely provide capabilities such as Cipher Feedback (CFB) for block cipher or streaming hash-based XOR obfuscation of the intended parameter payloads.

Quarkslab security researchers found two vulnerabilities in the way the TPM reference specification processes some of these parameters that are part of TPM commands. An Out Of Bound (OOB) read vulnerability in the CryptParameterDecryption() routine allowed a 2-byte read access to data that was not part of the current session. It was also possible to write 2-bytes past the end of the current command buffer resulting in corruption of memory.

An attacker with access to a device built with a vulnerable version of the TPM can trigger this bug by sending crafted commands to the TPM. The vulnerable TPM can thus be tricked to access data that is not part of the intended operation. As the OS relies on the TPM firmware for these functions, it may be difficult to detect or prevent such access using traditional host-based security capabilities.

Impact

An authenticated, local attacker could send maliciously crafted commands to a vulnerable TPM allowing access to sensitive data. In some cases, the attacker can also overwrite protected data in the TPM firmware. This may lead to a crash or arbitrary code execution within the TPM. Because the attacker's payload runs within the TPM, it may be undetectable by other components of the target device.

Solution

Apply an update The Trusted Computing Group (TCG) has released an update to their Errata for TPM2.0 Library Specification with instructions to address these vulnerabilities. To ensure the security of their systems, users should apply any updates provided by hardware and software manufacturers through their supply chain as soon as possible. Updating the firmware of TPM chips may be necessary, and this can be done through an OS vendor or the original equipment manufacturer (OEM). In some cases, the OEM may require resetting the TPM to its original factory default values as part of the update process.

Users in high-assurance computing environments should consider using TPM Remote Attestation to detect any changes to devices and ensure their TPM is tamper proofed. As these attacks involve TPM-based software, mechanisms such as user-password or PIN protection and tpm-totp do not protect against attacks leveraging the vulnerabilities discussed in this article.

Note: the TCG's Errata covers a larger scope and addresses additional security issues beyond the two vulnerabilities discussed in this advisory.

Acknowledgements

Thanks to Francisco Falcon and Ivan Arce of Quarkslab who researched and reported these vulnerabilities, respectively. The TCG and their members worked closely with us and other vendors to coordinate the disclosure of these vulnerabilities. Note that the Immune Gmbh's https://github.com/immune-gmbh/tpm-vuln-checker software has added support for detecting this vulnerability.

This document was written by Vijay Sarvepalli.

Original Source

Url : https://kb.cert.org/vuls/id/782720

CWE : Common Weakness Enumeration

% Id Name
50 % CWE-787 Out-of-bounds Write (CWE/SANS Top 25)
50 % CWE-125 Out-of-bounds Read

CPE : Common Platform Enumeration

TypeDescriptionCount
Application 3
Os 7
Os 10
Os 12
Os 10
Os 10
Os 14
Os 12
Os 7
Os 2
Os 2
Os 6

Alert History

If you want to see full details history, please login or register.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Date Informations
2024-03-05 00:36:57
  • Multiple Updates
2024-03-04 21:36:51
  • Multiple Updates
2024-03-04 21:22:18
  • Multiple Updates
2023-11-05 09:36:18
  • Multiple Updates
2023-11-05 05:36:34
  • Multiple Updates
2023-11-05 05:22:15
  • Multiple Updates
2023-10-27 21:37:56
  • Multiple Updates
2023-10-27 17:37:28
  • Multiple Updates
2023-10-27 17:22:14
  • Multiple Updates
2023-10-10 02:41:13
  • Multiple Updates
2023-10-10 00:36:04
  • Multiple Updates
2023-10-10 00:22:12
  • Multiple Updates
2023-08-21 21:36:41
  • Multiple Updates
2023-08-21 17:36:14
  • Multiple Updates
2023-08-21 17:22:10
  • Multiple Updates
2023-05-24 02:32:12
  • Multiple Updates
2023-05-24 00:36:39
  • Multiple Updates
2023-05-24 00:22:06
  • Multiple Updates
2023-05-02 02:28:23
  • Multiple Updates
2023-05-02 00:35:36
  • Multiple Updates
2023-05-02 00:22:05
  • Multiple Updates
2023-04-29 00:35:38
  • Multiple Updates
2023-04-28 21:35:39
  • Multiple Updates
2023-04-28 21:22:04
  • Multiple Updates
2023-04-21 02:26:53
  • Multiple Updates
2023-04-21 00:35:36
  • Multiple Updates
2023-04-21 00:22:07
  • Multiple Updates
2023-04-20 21:35:32
  • Multiple Updates
2023-04-20 21:22:03
  • Multiple Updates
2023-04-20 02:24:50
  • Multiple Updates
2023-04-20 00:35:41
  • Multiple Updates
2023-04-20 00:22:03
  • Multiple Updates
2023-04-18 00:35:34
  • Multiple Updates
2023-04-17 21:35:36
  • Multiple Updates
2023-04-17 21:22:02
  • Multiple Updates
2023-04-01 00:35:16
  • Multiple Updates
2023-03-31 21:35:25
  • Multiple Updates
2023-03-31 21:22:04
  • Multiple Updates
2023-03-23 09:35:03
  • Multiple Updates
2023-03-23 05:35:15
  • Multiple Updates
2023-03-23 05:22:05
  • Multiple Updates
2023-03-22 02:23:58
  • Multiple Updates
2023-03-22 00:35:21
  • Multiple Updates
2023-03-22 00:22:04
  • Multiple Updates
2023-03-14 21:35:32
  • Multiple Updates
2023-03-14 17:36:11
  • Multiple Updates
2023-03-14 17:22:04
  • Multiple Updates
2023-03-11 02:23:34
  • Multiple Updates
2023-03-11 00:35:31
  • Multiple Updates
2023-03-11 00:22:03
  • Multiple Updates
2023-03-10 21:35:13
  • Multiple Updates
2023-03-10 21:22:02
  • Multiple Updates
2023-03-10 09:35:25
  • Multiple Updates
2023-03-08 17:35:25
  • Multiple Updates
2023-03-08 17:22:05
  • Multiple Updates
2023-03-06 21:35:41
  • Multiple Updates
2023-03-06 21:22:04
  • Multiple Updates
2023-03-02 21:35:48
  • Multiple Updates
2023-03-02 21:22:05
  • Multiple Updates
2023-03-01 21:35:34
  • Multiple Updates
2023-03-01 21:22:03
  • Multiple Updates
2023-03-01 05:35:33
  • Multiple Updates
2023-03-01 05:22:06
  • Multiple Updates
2023-02-28 21:35:26
  • Multiple Updates
2023-02-28 21:22:05
  • First insertion