V kódu s referenční implementací specifikace TPM 2.0 (Trusted Platform Module) byly zjištěny zranitelnosti (CVE-2023-1017, CVE-2023-1018), které vedou k zápisu nebo čtení dat mimo vyhrazený buffer. Útok na implementace kryptoprocesorů využívající zranitelný kód může vést k extrahování nebo přepsání informací uložených na čipu, jako jsou kryptografické klíče. Možnost přepsání dat ve firmware TPM může být využita útočníkem k tomu, aby provedl svůj kód v kontextu TPM, což může být například použito k implementaci zadních vrat, která fungují na straně TPM a nejsou detekovatelná z operačního systému.
Zranitelnosti jsou způsobeny nesprávnou kontrolou velikosti parametrů funkce CryptParameterDecryption(), což umožňuje zápis nebo čtení dvou bytů mimo buffer předávaný funkci ExecuteCommand() a obsahující příkaz TPM 2.0. V závislosti na implementaci firmware mohou být přepisované dva byty poškozeny jak nevyužívanou pamětí, tak daty nebo ukazateli na zásobníku.
Exploatace zranitelnosti je realizována zasíláním speciálně formátovaných příkazů TPM modulu (útočník musí mít přístup k rozhraní TPM). Problémy byly odstraněny v aktualizaci specifikace TPM 2.0 vydané v lednu (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).
Zranitelnosti je také vystavena otevřená knihovna libtpms, používaná pro softwarovou emulaci modulů TPM a integraci podpory TPM do hypervisorů. Zranitelnost byla odstraněna ve verzi libtpms 0.9.6.
Zdroj: opennet.ru
