Vghost: o eroare veche de nouă ani din kernelul Linux oferă root utilizatorilor locali — și poate permite unei VM să atingă gazda
O vulnerabilitate nou dezvăluită în subsistemul vhost al kernelului Linux, identificată ca CVE-2026-74580 și denumită Vghost, permite unui utilizator local neprivilegiat să citească și să scrie oriunde în memoria kernelului și să obțină drepturi de root. Într-o configurație de virtualizare mai specifică, aceeași eroare permite unei mașini virtuale neîncrezătoare să corupă memoria procesului QEMU de pe gazdă. Corecția upstream există de la începutul lui august, iar analiza tehnică completă, cu demonstrații funcționale, a fost publicată pe 12 octombrie. Până acum nu există dovezi publice de exploatare activă.
Ce s-a întâmplat
vhost este calea rapidă din kernel prin care mașinile virtuale și containerele gestionează rețeaua și alte operații I/O. Din spațiul utilizator este accesat prin noduri de dispozitiv — de regulă /dev/vhost-net și /dev/vhost-vsock.
Pentru performanță, vhost păstrează în cache maparea de memorie a fiecărui inel virtual și consideră o potrivire în cache drept dovadă că zona a fost deja validată. Cache-ul este golit la actualizarea mapărilor, la invalidări și la resetarea cozii — dar nu și atunci când comenzile VHOST_SET_VRING_ADDR sau VHOST_SET_VRING_NUM modifică adresa sau dimensiunea unui inel activ. Cu un device IOTLB atașat, aceste comenzi amână verificarea adresei; odată ce cache-ul este populat, verificarea amânată nu mai rulează. Kernelul continuă să folosească maparea veche și copiază date fără verificarea limitelor, oferind atacatorului citire/scriere în afara zonei permise.
Breșa a apărut din combinarea a două modificări rezonabile luate separat: o optimizare din 2017 (Linux 4.11) a introdus cache-ul, iar o refactorizare din 2020 (Linux 5.9) a mutat validarea adreselor în afara comenzii. Împreună au lăsat eroarea în cod aproximativ nouă ani.
Cercetătorii de la Tencent Zhuque Lab au demonstrat două scenarii:
- Escaladare locală de privilegii (pe gazdă): un lanț determinist — fără pregătirea memoriei, fără condiții de cursă — până la citire/scriere arbitrară în kernel, ocolirea KASLR și root.
- Impact din oaspete spre gazdă: când un dispozitiv virtio se află în spatele unui IOMMU virtual cu
iommu_platformactivat, iar vhost rulează în modul device-IOTLB, o mașină virtuală rău intenționată poate forța kernelul gazdei să scrie în afara limitelor în procesul QEMU, să suprascrie un pointer de funcție și să deturneze sau să blocheze procesul.
Eroarea a fost descoperită cu ajutorul Corvus AI, sistemul multi-agent al laboratorului pentru cercetare în kernel — patch-ul upstream include o mențiune Assisted-by. Este cercetare defensivă asistată de AI, nu un atac condus de AI.
De ce contează
- Interval larg de versiuni. Sunt afectate kernelurile de la 4.11 până la 7.2-rc4, adică aproape toate kernelurile enterprise suportate.
- Confirmat pe distribuții majore. Lanțul complet până la root a fost reprodus pe Ubuntu 26.04, RHEL 9.8, Amazon Linux 2023, Microsoft Azure Linux 3.0 și Oracle Linux 10.2. Pe patru dintre aceste imagini nodul vhost era accesibil oricui (mod
0666); pe Ubuntu era limitat la grupulkvm. - Severitate ridicată, nu critică — iar evaluările diferă. kernel.org îi acordă 8,8 cu scope changed, din cauza scenariului oaspete–gazdă; Red Hat (7,3) și Oracle (7,3) consideră scope-ul neschimbat; Amazon o evaluează la 7,8. Recomandăm prioritate ridicată pentru orice gazdă de virtualizare sau multi-tenant și pentru sistemele Linux partajate unde utilizatori neîncrezători au acces shell.
Ce trebuie făcut
-
Actualizați kernelul și reporniți. Instalați un kernel care include commit-ul upstream
de845981da67. Primele versiuni stabile corectate:Ramură stabilă Prima versiune corectată 5.10.y 5.10.265 5.15.y 5.15.216 6.1.y 6.1.183 6.6.y 6.6.152 6.12.y 6.12.104 6.18.y 6.18.45 7.1.y 7.1.9 7.2 7.2 Distribuțiile aplică adesea backport fără a schimba numărul versiunii — verificați buletinul furnizorului, nu doar
uname -r. Red Hat, Amazon Linux și Oracle Linux au publicat corecții; Ubuntu a corectat 22.04, iar 24.04 și 26.04 figurau încă „în lucru” la 13 octombrie. -
Restricționați nodurile de dispozitiv până la repornire. Eliminați accesul global la
/dev/vhost-netși/dev/vhost-vsock(persistent, prin reguli udev), limitați grupul proprietar la serviciile de virtualizare de încredere și tratați apartenența la acel grup (de ex.kvm) ca rol privilegiat. -
Prioritizați hipervizoarele. Pentru scenariul oaspete–gazdă nu există soluție temporară — singurul remediu este kernelul corectat. Gazdele care rulează mașini virtuale neîncrezătoare cu vIOMMU/
iommu_platformtrebuie tratate primele. -
Inventariați și verificați. Identificați gazdele Linux, runner-ele CI, nodurile de containere și imaginile cloud din intervalul afectat, verificați care au noduri vhost accesibile și urmăriți-le până la remediere.
Sursa: The Hacker News — thehackernews.com. Cercetarea originală: Tencent Zhuque Lab.
