Sårbarheter i TPM 2.0-referanseimplementeringen som gir tilgang til data på kryptobrikken

I koden med referanseimplementeringen av TPM 2.0-spesifikasjonen (Trusted Platform Module) ble det identifisert sårbarheter (CVE-2023-1017, CVE-2023-1018) som fører til skriving eller lesing av data utenfor grensene til den tildelte bufferen. Et angrep på implementeringer av kryptoprosessorer som bruker sårbar kode, kan føre til utvinning eller overskriving av informasjon som er lagret på brikken, for eksempel kryptografiske nøkler. Muligheten til å overskrive data i TPM-fastvaren kan brukes av en angriper til å organisere kjøringen av koden deres i konteksten av TPM, som for eksempel kan brukes til å implementere bakdører som opererer på TPM-siden og ikke oppdages av operativsystemet.

Sårbarhetene er forårsaket av feil verifisering av parameterstørrelsen til CryptParameterDecryption()-funksjonen, som lar to byte skrives eller leses utenfor grensen til bufferen som sendes til ExecuteCommand()-funksjonen og inneholder TPM2.0-kommandoen. Avhengig av fastvareimplementeringen kan de to bytene som overskrives, ødelegge både ubrukt minne og data eller pekere på stabelen.

Sårbarheten utnyttes ved å sende spesialdesignede kommandoer til TPM-modulen (angriperen må ha tilgang til TPM-grensesnittet). Problemene ble løst i TPM 2.0-spesifikasjonsoppdateringen utgitt i januar (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Det åpne biblioteket libtpms, som brukes til programvareemulering av TPM-moduler og integrering av TPM-støtte i hypervisorer, er også sårbart. Sårbarheten ble fikset i libtpms 0.9.6-utgivelsen.

Kilde: opennet.ru

Legg til en kommentar