Luki w referencyjnej implementacji TPM 2.0, które umożliwiają dostęp do danych w kryptochipie

W kodzie z referencyjną implementacją specyfikacji TPM 2.0 (Trusted Platform Module) zidentyfikowano podatności (CVE-2023-1017, CVE-2023-1018), które prowadzą do zapisu lub odczytu danych poza granicami przydzielonego bufora. Atak na implementacje kryptoprocesorów przy użyciu podatnego kodu może skutkować ekstrakcją lub nadpisaniem informacji przechowywanych w chipie, takich jak klucze kryptograficzne. Możliwość nadpisania danych w oprogramowaniu TPM może zostać wykorzystana przez atakującego do zorganizowania wykonania swojego kodu w kontekście modułu TPM, co może zostać wykorzystane np. do zaimplementowania backdoorów działających po stronie TPM i niewykrywalnych przez system operacyjny.

Podatności spowodowane są błędną weryfikacją wielkości parametrów funkcji CryptParameterDecryption(), która pozwala na zapis lub odczyt dwóch bajtów poza granicę bufora przekazywanego do funkcji ExecuteCommand() i zawierającego polecenie TPM2.0. W zależności od implementacji oprogramowania sprzętowego nadpisanie dwóch bajtów może spowodować uszkodzenie zarówno nieużywanej pamięci, jak i danych lub wskaźników na stosie.

Luka wykorzystywana jest poprzez wysyłanie specjalnie zaprojektowanych poleceń do modułu TPM (atakujący musi mieć dostęp do interfejsu TPM). Problemy zostały rozwiązane w wydanej w styczniu aktualizacji specyfikacji TPM 2.0 (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6).

Otwarta biblioteka libtpms, używana do emulacji oprogramowania modułów TPM i integracji obsługi TPM z hiperwizorami, również jest podatna na ataki. Luka została naprawiona w wersji libtpms 0.9.6.

Źródło: opennet.ru

Dodaj komentarz