Badacze z Uniwersytetu w Birmingham, wcześniej znani z opracowania ataków Plundervolt i VoltPillager, odkryli lukę (CVE-2022-43309) w niektórych serwerowych płytach głównych, która pozwala na fizyczne uszkodzenie CPU bez możliwości jego późniejszego odzyskania. Luka, która otrzymała nazwę kodową PMFault, może być wykorzystana do uszkodzenia serwerów, do których atakujący nie ma fizycznego dostępu, ale ma uprzywilejowany dostęp do systemu operacyjnego, uzyskany na przykład w wyniku wykorzystania niepoprawionej luki lub przechwycenia danych logowania administratora.
Istota proponowanej metody polega na użyciu interfejsu PMBus, w którym stosowany jest protokół I2C, w celu zwiększenia napięcia zasilającego procesor do wartości powodujących uszkodzenie chipu. Interfejs PMBus jest zazwyczaj realizowany w module VRM (Voltage Regulator Module), do którego dostęp można uzyskać poprzez manipulacje z kontrolerem BMC. Aby przeprowadzić atak na płyty obsługujące PMBus, oprócz uprawnień administratora w systemie operacyjnym konieczny jest programowy dostęp do BMC (Baseboard Management Controller), na przykład przez interfejs IPMI KCS (Keyboard Controller Style), przez Ethernet lub przez wgranie nowego oprogramowania do BMC z bieżącego systemu.
Obecność problemu, który umożliwia przeprowadzenie ataku bez znajomości parametrów uwierzytelniania w BMC, została potwierdzona w płytach głównych Supermicro z obsługą IPMI (X11, X12, H11 i H12) oraz ASRock, ale luki podlegają również inne płyty serwerowe, na których można uzyskać dostęp do PMBus. W ramach przeprowadzonych eksperymentów, przy zwiększeniu napięcia do 2.84 wolta, uszkodzone zostały dwa procesory Intel Xeon. Aby uzyskać dostęp do BMC bez znajomości parametrów uwierzytelniania, ale przy posiadaniu dostępu root do systemu operacyjnego, wykorzystano lukę w mechanizmie weryfikacji oprogramowania, która pozwoliła na załadowanie zmodyfikowanej aktualizacji oprogramowania do kontrolera BMC, a także możliwość nieautoryzowanego dostępu przez IPMI KCS.
Metoda zmiany napięcia przez PMBus może być również stosowana do ataku Plundervolt, który pozwala poprzez obniżenie napięcia do minimalnych wartości spowodować uszkodzenie zawartości komórek z danymi w CPU, wykorzystywanych w obliczeniach w izolowanych enklawach Intel SGX oraz generować błędy w początkowo poprawnych algorytmach. Na przykład, jeśli uda się zmienić wartość używaną przy mnożeniu w procesie szyfrowania, na wyjściu otrzymamy niepoprawny tekst szyfrowany. Mając możliwość dostępu do procesora w SGX do szyfrowania swoich danych, atakujący może, wywołując awarie, gromadzić statystyki dotyczące zmiany szyfrogramu na wyjściu i odzyskać wartość klucza przechowywanego w enklawie SGX.
Narzędzia do przeprowadzania ataku na płyty Supermicro i ASRock oraz narzędzie do sprawdzania dostępu do PMBus zostały opublikowane na GitHubie.
Źródło: opennet.ru
