Im Code der Referenzimplementierung der TPM 2.0-Spezifikation (Trusted Platform Module) wurden Schwachstellen (CVE-2023-1017, CVE-2023-1018) entdeckt, die zu einer Lesung oder Schreibvorgängen außerhalb des zugewiesenen Puffers führen. Ein Angriff auf Implementierungen von Kryptoprocessoren, die vulnerablen Code verwenden, kann dazu führen, dass Informationen auf dem Chip, wie kryptografische Schlüssel, extrahiert oder überschrieben werden. Die Möglichkeit, Daten im TPM-Firmware zu überschreiben, kann von Angreifern genutzt werden, um die Ausführung ihres Codes im Kontext des TPM zu initiieren, was beispielsweise zur Implementierung von Backdoors führen kann, die auf der TPM-Seite arbeiten und vom Betriebssystem nicht erkannt werden.
Die Schwachstellen resultieren aus einer fehlerhaften Überprüfung der Größe der Parameter der Funktion CryptParameterDecryption(), die Schreib- oder Leseoperationen von zwei Bytes außerhalb des Puffers zulässt, der an die Funktion ExecuteCommand() übergeben wird und den Befehl TPM2.0 enthält. Je nach Implementierung der Firmware können die überschriebenen zwei Bytes sowohl ungenutzten Speicher als auch Daten oder Zeiger im Stack beschädigen.
Die Ausnutzung der Schwachstelle erfolgt durch das Senden speziell formatierter Befehle an den TPM-Modul (der Angreifer muss Zugriff auf das TPM-Interface haben). Die Probleme wurden in dem im Januar veröffentlichten Update der TPM 2.0-Spezifikation (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6) behoben.
Die Schwachstellen betreffen auch die Open-Source-Bibliothek libtpms, die zur softwarebasierten Emulation von TPM-Modulen und zur Integration von TPM-Unterstützung in Hypervisoren verwendet wird. Die Schwachstelle wurde in der Version libtpms 0.9.6 behoben.
Quelle: opennet.ru
