Vulnerabilità nei firmware UEFI di Phoenix, che coinvolge molti dispositivi con CPU Intel

Nelle versioni del firmware UEFI Phoenix SecureCore, utilizzate su molti laptop, PC e server con processori Intel, è stata trovata una vulnerabilità (CVE-2024-0762) che consente, in presenza di accesso al sistema, di eseguire codice a livello di firmware. Questa vulnerabilità può essere sfruttata dopo un attacco riuscito al sistema per inserire un backdoor nel firmware che opera al di sopra del sistema operativo, aggirando i meccanismi di sicurezza dell'OS e rimanendo invisibile ai programmi di rilevamento del malware, mantenendo la propria presenza anche dopo la reinstallazione del sistema operativo.

La vulnerabilità è causata da un uso non sicuro della variabile TCG2_CONFIGURATION nella configurazione del TPM (Trusted Platform Module), la manipolazione della quale può portare a un buffer overflow e all'esecuzione potenziale di codice con privilegi del firmware UEFI, cioè a livello di SMM (System Management Mode), che ha una priorità maggiore rispetto alla modalità hypervisor e al level zero di protezione, e fornisce accesso illimitato a tutta la memoria di sistema. La vulnerabilità è presente nel codice di gestione della configurazione TPM nell'UEFI e si manifesta indipendentemente dalla presenza del chip TPM.

La causa dell'overflow che si verifica è la chiamata errata a doppio del servizio UEFI GetVariable, nel caso in cui il valore di TCG2_CONFIGURATION superi la dimensione inizialmente allocata nel buffer dello stack, e in entrambi i casi venga utilizzata la stessa variabile con la dimensione data_size senza modificarla dopo la prima chiamata. Se un attaccante ha la possibilità di modificare il valore della variabile UEFI TCG2_CONFIGURATION durante il funzionamento del sistema, può impostarlo sufficientemente grande affinché la prima chiamata restituisca il codice EFI_BUFFER_TOO_SMALL. Poiché dopo la prima chiamata il valore di data_size, invece della dimensione inizialmente assegnata, verrà impostato sulla dimensione del valore della variabile TCG2_CONFIGURATION, la seconda chiamata porterà a un overflow del buffer.

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)

Il problema si manifesta nei firmware Phoenix SecureCore, utilizzati su dispositivi con processori Intel delle famiglie AlderLake, CoffeeLake, CometLake, IceLake, JasperLake, KabyLake, MeteorLake, RaptorLake, RocketLake e TigerLake. La possibilità di eseguire un attacco su un sistema specifico dipende dalle impostazioni del firmware e dalla possibilità di accedere alla variabile TCG2_CONFIGURATION. Un esempio di sfruttamento della vulnerabilità è stato dimostrato sui laptop Lenovo ThinkPad X1 Carbon di prima generazione e Lenovo ThinkPad X1 Yoga di quarta generazione. La vulnerabilità è stata corretta negli aggiornamenti di firmware di aprile e maggio da parte di Technologies e Lenovo.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster