TPM 2.0 -viitetoteutuksen haavoittuvuudet, jotka mahdollistavat pääsyn salaussirun tietoihin

Koodissa, jossa on TPM 2.0 (Trusted Platform Module) -määrityksen viitetoteutus, tunnistettiin haavoittuvuuksia (CVE-2023-1017, CVE-2023-1018), jotka johtavat tietojen kirjoittamiseen tai lukemiseen varatun puskurin rajojen yli. Hyökkäys haavoittuvaa koodia käyttäviä kryptoprosessoritoteutuksia vastaan ​​voi johtaa sirulle tallennettujen tietojen, kuten salausavainten, purkamiseen tai korvaamiseen. Hyökkääjä voi käyttää TPM-laiteohjelmiston tietojen päällekirjoitusmahdollisuutta käyttääkseen koodinsa suorittamisen järjestämiseen TPM:n yhteydessä, jota voidaan käyttää esimerkiksi TPM-puolella toimivien takaovien toteuttamiseen, joita ei havaita. käyttöjärjestelmän toimesta.

Haavoittuvuudet johtuvat CryptParameterDecryption()-funktion parametrien koon virheellisestä tarkistuksesta, mikä mahdollistaa kahden tavun kirjoittamisen tai lukemisen ExecuteCommand()-funktiolle välitetyn ja TPM2.0-komennon sisältävän puskurin rajojen ulkopuolelle. Laiteohjelmiston toteutuksesta riippuen kaksi päällekirjoitettavaa tavua voivat vahingoittaa sekä käyttämätöntä muistia että pinossa olevia tietoja tai osoittimia.

Haavoittuvuutta hyödynnetään lähettämällä erityisesti suunniteltuja komentoja TPM-moduuliin (hyökkääjällä on oltava pääsy TPM-liittymään). Ongelmat korjattiin tammikuussa julkaistussa TPM 2.0 -määrityspäivityksessä (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Avoin libtpms-kirjasto, jota käytetään TPM-moduulien ohjelmistoemulointiin ja TPM-tuen integrointiin hypervisoreihin, on myös haavoittuvainen. Haavoittuvuus korjattiin libtpms 0.9.6 -julkaisussa.

Lähde: opennet.ru

Lisää kommentti