În codul cu implementarea de referință a specificației TPM 2.0 (Trusted Platform Module), au fost identificate vulnerabilități (CVE-2023-1017, CVE-2023-1018) care duc la scrierea sau citirea datelor dincolo de limitele bufferului alocat. Un atac asupra implementărilor de criptoprocesoare care utilizează cod vulnerabil ar putea duce la extragerea sau suprascrierea informațiilor stocate pe cip, cum ar fi cheile criptografice. Capacitatea de a suprascrie datele din firmware-ul TPM poate fi folosită de un atacator pentru a-și organiza execuția codului în contextul TPM, care, de exemplu, poate fi folosit pentru a implementa uși din spate care funcționează pe partea TPM și nu sunt detectate. de sistemul de operare.
Vulnerabilitățile sunt cauzate de verificarea incorectă a dimensiunii parametrilor funcției CryptParameterDecryption(), care permite scrierea sau citirea a doi octeți dincolo de limita bufferului transmis funcției ExecuteCommand() și care conține comanda TPM2.0. În funcție de implementarea firmware-ului, cei doi octeți suprascriși pot deteriora atât memoria neutilizată, cât și datele sau pointerii de pe stivă.
Vulnerabilitatea este exploatată prin trimiterea de comenzi special concepute către modulul TPM (atacatorul trebuie să aibă acces la interfața TPM). Problemele au fost rezolvate în actualizarea specificațiilor TPM 2.0 lansată în ianuarie (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).
Biblioteca deschisă libtpms, folosită pentru emularea software a modulelor TPM și integrarea suportului TPM în hipervizoare, este, de asemenea, vulnerabilă. Vulnerabilitatea a fost remediată în versiunea libtpms 0.9.6.
Sursa: opennet.ru
