In den Phoenix SecureCore UEFI-Firmwaren, die in vielen Laptops, PCs und Servern mit Intel-Prozessoren verwendet werden, wurde eine SicherheitsanfĂ€lligkeit (CVE-2024-0762) entdeckt. Diese ermöglicht es Angreifern, durch Systemzugriff Schadcode auf Firmware-Ebene auszufĂŒhren. Die Schwachstelle kann nach einem erfolgreichen Angriff auf das System ausgenutzt werden, um einen Backdoor in der Firmware zu hinterlassen, die auf dem Betriebssystem lĂ€uft, die Sicherheitsmechanismen des OS umgeht, unbemerkt von Malware-Erkennungsprogrammen bleibt und auch nach einer Neuinstallation des Betriebssystems bestehen bleibt.
Die SicherheitsanfĂ€lligkeit ergibt sich aus der unsicheren Verwendung der Variable TCG2_CONFIGURATION in der TPM (Trusted Platform Module)-Konfiguration. Manipulationen an dieser Variable können zu einem PufferĂŒberlauf fĂŒhren und potenziell zur AusfĂŒhrung von Code mit Privilegien der UEFI-Firmware fĂŒhren, d. h. auf der Ebene des SMM (System Management Mode), die eine höhere PrioritĂ€t als der Hypervisor- und Ring-0-Schutzmodus hat und unbeschrĂ€nkten Zugriff auf den gesamten Systemspeicher gewĂ€hrt. Die SicherheitsanfĂ€lligkeit ist im Code zur Verarbeitung der TPM-Konfiguration in UEFI vorhanden und tritt unabhĂ€ngig von der VerfĂŒgbarkeit eines TPM-Chips auf.
Die Ursache fĂŒr das auftretende Ăberlaufproblem liegt in einem fehlerhaften doppelten Aufruf des UEFI-Dienstes GetVariable, wenn der Wert von TCG2_CONFIGURATION die ursprĂŒnglich im Stack zugewiesene GröĂe des Puffers ĂŒberschreitet, wobei in beiden Aufrufen dieselbe Variable mit der GröĂe data_size verwendet wurde, ohne dass diese nach dem ersten Aufruf verĂ€ndert wurde. Falls ein Angreifer die Möglichkeit hat, den Wert der UEFI-Variablen TCG2_CONFIGURATION wĂ€hrend des Betriebs des Systems zu Ă€ndern, kann er ihn so groĂ setzen, dass der erste Aufruf den Code EFI_BUFFER_TOO_SMALL zurĂŒckgibt. Da nach dem ersten Aufruf der Wert von data_size anstelle der ursprĂŒnglich festgelegten GröĂe des vorhandenen Puffers auf die GröĂe der Variablen TCG2_CONFIGURATION gesetzt wird, fĂŒhrt der zweite Aufruf zu einem PufferĂŒberlauf.
void Function_0000537c(void) {
âŠ
ulonglong data_size;
char buffer [8];
âŠ
EVar1 = (*gRS_2->GetVariable)
((CHAR16 *)TCG2_CONFIGURATION, &gTCG2_CONFIG_FORM_SET_GUID,
(UINT32 *)0x0, &data_size, buffer);
if (EVar1 == EFI_BUFFER_TOO_SMALL) {
EVar1 = (*gRS_2->GetVariable)
((CHAR16 *)TCG2_CONFIGURATION, &gTCG2_CONFIG_FORM_SET_GUID,
(UINT32 *)0x0, &data_size, buffer)
Das Problem tritt in den Phoenix SecureCore-Firmwareversionen auf, die auf GerĂ€ten mit Intel-Prozessoren der Familien AlderLake, CoffeeLake, CometLake, IceLake, JasperLake, KabyLake, MeteorLake, RaptorLake, RocketLake und TigerLake verwendet werden. Die Möglichkeit, einen Angriff auf ein bestimmtes System durchzufĂŒhren, hĂ€ngt von den Firmware-Einstellungen und dem Zugang zur Variablen TCG2_CONFIGURATION ab. Ein Beispiel fĂŒr die Ausnutzung dieser Schwachstelle wird an den Lenovo ThinkPad X1 Carbon der Gen-Generation und dem Lenovo ThinkPad X1 Yoga der 4. Generation demonstriert. Die Schwachstelle wurde in den Firmware-Updates von Technologies und Lenovo im April und Mai behoben.
Quelle: opennet.ru
