Cercetătorii care au descoperit recent vulnerabilitatea Fragnesia în nucleul Linux au publicat informații despre vulnerabilitățile din QEMU care permit obținerea accesului root la mediul gazdă din sistemul invitat. Problema a primit numele de cod QEMUtiny, dar identificatorul CVE nu a fost încă atribuit. A fost pregătit un exploit care implică două vulnerabilități în codul de emulare a dispozitivului CXL (Compute Express Link).
Ambele vulnerabilități sunt prezente în codul cxl-mailbox-utils.c. Prima vulnerabilitate apare începând cu versiunea QEMU 7.1.0 și duce la citirea memoriei dintr-o zonă din afara buffer-ului alocat din cauza faptului că funcția cmd_logs_get_log() interpretează greșit offset-ul solicitat al jurnalului CEL ca index într-un array, în timp ce acesta este definit în octeți. A doua vulnerabilitate apare începând cu QEMU 11.0.0 și duce la depășirea buffer-ului în funcția cmd_features_set_feature() din cauza prelucrării offset-ului pe structură la scrierea atributelor, fără a verifica dacă valoarea calculată „offset + bytes_to_copy” se încadrează în dimensiunea structurii alese.
De fapt, atacul este posibil doar pe ultima ramură QEMU 11.0.0. Nu s-au raportat informații despre o eventuală corectare, s-a menționat doar că înainte de divulgarea vulnerabilității, informațiile au fost transmise dezvoltatorilor QEMU, care au răspuns că suportul pentru dispozitivele CXL în QEMU nu a fost implementat pentru utilizarea în virtualizare.
Exploit-ul a fost testat cu baza de cod QEMU din 11 mai, având ultimul commit 5e61afe. Funcționarea exploit-ului depinde de aranjarea structurilor în memorie pentru fiecare versiune specifică de QEMU și libc de sistem, dar conform cercetătorilor, folosind vulnerabilitatea pentru scanarea memoriei care duce la citirea dintr-o zonă din afara buffer-ului, se poate crea un exploit universal care funcționează cu diferite versiuni de QEMU.
Sursa: opennet.ro
