Uuendusvõime UEFI-puhvrite Phoenixis, mis mõjutab paljusid seadmeid Intel CPU-dega

Phoenix SecureCore UEFI-firmware'ides, mis kasutavad paljusid Intelile toetavaid sülearvuteid, PC-sid ja servereid, on avastatud haavatavus (CVE-2024-0762), mis võimaldab süsteemi juurdepääsu korral saavutada koodi täitmise tasemel firmware'is. Haavatavust saab kasutada pärast edukat rünnakut süsteemi kiusamiseks, jättes firmware'i tagasiukse, mis töötab operatsioonisüsteemi tasemel, mööda operatsioonisüsteemi turvamehhanisme ning pestes end varjamatuks pahavara määramisel ja säilitades oma kohaloleku ka pärast operatsioonisüsteemi uuesti installimist.

Haavatavus tuleneb TCG2_CONFIGURATION muutujate ebaturvalisest kasutamisest TPM (Trusted Platform Module) konfiguratsioonis, mille manipuleerimine võib viia puhvri ülevoolu ja potentsiaalse UEFI-firmware'i privileegidega koodi täitmiseni, st SMM (System Management Mode) tasemel, mis omab kõrgemat prioriteeti kui hüperviisori režiim ja nullkaitse ring, andes piiramatud õigused kogu süsteemi mälule. Haavatavus esineb UEFI TPM konfiguratsiooni töötlemise koodis ning ilmneb sõltumatult TPM-kiibi olemasolust.

Tekitõuks esineva ülevoolu põhjuseks on UEFI-teenuse GetVariable vale kahekordne kutsumine, juhul kui TCG2_CONFIGURATION väärtus ületab algselt määratud virna puhver, samas kui mõlemal kutsumisel on kasutatud sama muutujat data_size suurusega, ilma selle väärtuse muutmiseta pärast esimest kutsumist. Kui ründajal on võimalik muuta UEFI-muutuja TCG2_CONFIGURATION väärtust süsteemi töö ajal, siis võib ta seada selle piisavalt suureks, et esimene kutsumine tagastaks koodi EFI_BUFFER_TOO_SMALL. Kuna pärast esimest kutsumist on data_size väärtus, mitte algselt määratud praeguse puhvri suurus, määratud muutujate TCG2_CONFIGURATION väärtuse suuruseks, siis teine kutsumine toob kaasa puhvri ülevoolu.

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)

Probleem ilmneb Phoenix SecureCore püsivates, mida kasutatakse AlderLake, CoffeeLake, CometLake, IceLake, JasperLake, KabyLake, MeteorLake, RaptorLake, RocketLake ja TigerLake protsessoritega seadmetes. Rünnaku võimalus konkreetse süsteemi suhtes sõltub püsivara seadistustest ja juurdepääsust TCG2_CONFIGURATION muutujale. Rünnaku näidet on demonstreeritud Lenovo ThinkPad X1 Carbon Gen ja Lenovo ThinkPad X1 Yoga 4. põlvkonna sülearvutites. Vulnerability kõrvaldatakse aprilli ja mai püsivara uuendustes Technologies ja Lenovo poolt.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster