Kwetsbaarheden in de TPM 2.0-referentie-implementatie die toegang tot gegevens in de cryptochip mogelijk maken

In de code met de referentie-implementatie van de TPM 2.0 (Trusted Platform Module)-specificatie zijn kwetsbaarheden geïdentificeerd (CVE-2023-1017, CVE-2023-1018) die ertoe leiden dat gegevens buiten de grenzen van de toegewezen buffer worden geschreven of gelezen. Een aanval op cryptoprocessorimplementaties met behulp van kwetsbare code kan resulteren in het extraheren of overschrijven van op de chip opgeslagen informatie, zoals cryptografische sleutels. De mogelijkheid om gegevens in de TPM-firmware te overschrijven kan door een aanvaller worden gebruikt om de uitvoering van zijn code in de context van de TPM te organiseren, die bijvoorbeeld kan worden gebruikt om backdoors te implementeren die aan de TPM-zijde werken en niet worden gedetecteerd door het besturingssysteem.

De kwetsbaarheden worden veroorzaakt door onjuiste verificatie van de grootte van parameters van de functie CryptParameterDecryption(), waardoor twee bytes kunnen worden geschreven of gelezen voorbij de grens van de buffer die wordt doorgegeven aan de functie ExecuteCommand() en die de opdracht TPM2.0 bevat. Afhankelijk van de firmware-implementatie kunnen de twee bytes die worden overschreven zowel ongebruikt geheugen als gegevens of pointers op de stapel beschadigen.

Het beveiligingslek wordt misbruikt door speciaal ontworpen opdrachten naar de TPM-module te sturen (de aanvaller moet toegang hebben tot de TPM-interface). De problemen zijn opgelost in de TPM 2.0-specificatie-update die in januari is uitgebracht (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

De open bibliotheek libtpms, die wordt gebruikt voor software-emulatie van TPM-modules en integratie van TPM-ondersteuning in hypervisors, is ook kwetsbaar. Het beveiligingslek is opgelost in de release van libtpms 0.9.6.

Bron: opennet.ru

Voeg een reactie