Sårbarheder i TPM 2.0-referenceimplementeringen, der giver adgang til data på kryptochippen

I koden med referenceimplementeringen af ​​TPM 2.0-specifikationen (Trusted Platform Module) blev der identificeret sårbarheder (CVE-2023-1017, CVE-2023-1018), der fører til skrivning eller læsning af data ud over grænserne for den tildelte buffer. Et angreb på kryptoprocessorimplementeringer ved hjælp af sårbar kode kan resultere i udtrækning eller overskrivning af on-chip lagret information såsom kryptografiske nøgler. Evnen til at overskrive data i TPM-firmwaren kan bruges af en angriber til at organisere udførelsen af ​​deres kode i sammenhæng med TPM'en, som for eksempel kan bruges til at implementere bagdøre, der fungerer på TPM-siden og ikke detekteres af operativsystemet.

Sårbarhederne er forårsaget af forkert verifikation af størrelsen af ​​parametrene for CryptParameterDecryption()-funktionen, som gør det muligt at skrive eller læse to bytes ud over grænsen for bufferen, der sendes til ExecuteCommand()-funktionen og indeholder TPM2.0-kommandoen. Afhængigt af firmwareimplementeringen kan de to bytes, der overskrives, ødelægge både ubrugt hukommelse og data eller pointere på stakken.

Sårbarheden udnyttes ved at sende specialdesignede kommandoer til TPM-modulet (angriberen skal have adgang til TPM-grænsefladen). Problemerne blev løst i TPM 2.0-specifikationsopdateringen udgivet i januar (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Det åbne bibliotek libtpms, der bruges til softwareemulering af TPM-moduler og integration af TPM-understøttelse i hypervisorer, er også sårbart. Sårbarheden blev rettet i libtpms 0.9.6-udgivelsen.

Kilde: opennet.ru

Tilføj en kommentar