Schwachstellen in der Referenzimplementation von TPM 2.0, die den Zugriff auf Daten im Krypto-Chip ermöglichen

Im Code der Referenzimplementation der TPM 2.0-Spezifikation (Trusted Platform Module) wurden Schwachstellen (CVE-2023-1017, CVE-2023-1018) entdeckt, die zu einer Lese- oder Schreiboperation von Daten außerhalb des zugewiesenen Puffers führen. Angriffe auf Implementierungen von Krypto-Prozessoren, die den verwundbaren Code verwenden, können zur Extraktion oder Überschreibung von Informationen führen, die auf dem Chip gespeichert sind, wie z.B. kryptografische Schlüssel. Die Möglichkeit, Daten im TPM-Flash neu zu schreiben, könnte von einem Angreifer ausgenutzt werden, um die Ausführung seines eigenen Codes im Kontext von TPM zu organisieren, was beispielsweise zur Implementierung von Backdoors verwendet werden kann, die im TPM funktionieren und von dem Betriebssystem nicht erkannt werden.

Die Schwachstellen werden durch eine fehlerhafte Überprüfung der Größe der Parameter der Funktion CryptParameterDecryption() verursacht, die das Schreiben oder Lesen von zwei Bytes außerhalb des Puffers zulässt, der in die Funktion ExecuteCommand() übergeben wird und den Befehl TPM2.0 enthält. Abhängig von der Implementierung des Flash-Speichers kann das Überschreiben der beiden Bytes sowohl ungenutzten Speicher als auch Daten oder Zeiger im Stack beschädigen.

Die Ausnutzung der Schwachstelle erfolgt durch das Senden von speziell formatierten Befehlen an das TPM-Modul (der Angreifer muss Zugriff auf die TPM-Schnittstelle haben). Die Probleme wurden im im Januar veröffentlichten Update der TPM 2.0-Spezifikation behoben (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Die Schwachstellen betreffen auch die offene Bibliothek libtpms, die für die softwarebasierte Emulation von TPM-Modulen und die Integration der TPM-Unterstützung in Hypervisoren verwendet wird. Die Schwachstelle wurde in der Version libtpms 0.9.6 behoben.

Quelle: opennet.ru

60GB SSD 8Gb DDR4