Publicat în

Vulnerabilitatea PwnEscape (CVE-2026-99999): Cum un defect în stiva de rețea Linux permite evadarea din VM și accesul la host

Descoperită în cadrul provocării de securitate Vercel Sandbox de 1 milion de dolari, vulnerabilitatea PwnEscape (CVE-2026-99999) expune un defect fundamental în mecanismul de checksum offloading al kernel-ului Linux, permițând unui atacant dintr-o mașină virtuală să citească memoria host-ului, să provoace *crash*-uri și, în lanțuri de exploatare avansate, să execute cod cu privilegii de root pe host. Eroarea nu se află într-un hypervisor specific — KVM, Firecracker sau altele — ci în stiva de rețea Linux care procesează traficul guest-urilor, făcând-o relevantă pentru aproape orice mediu multi-tenant. Patch-ul upstream (commit 6785011f8b16), autor Michael S. Tsirkin (Red Hat), a fost integrat în mainline pe 14 octombrie 2026 și backportat pe ramurile stabile 5.10, 5.15, 6.1, 6.6, 6.12, 6.18 și 7.2. Pentru furnizori de hosting și echipe DevOps care administrează infrastructură partajată, actualizarea kernel-ului nu mai este opțională: este o cerință operațională imediată.

Mecanismul tehnic: checksum offloading și TOCTOU fără race condition

Kernel-ul Linux permite amânarea calculului *checksum*-ului unui pachet (checksum offloading) până la o etapă ulterioară a procesării. Metadatele pachetului — câmpurile csum_start și csum_offset — indică unde să înceapă calculul și unde să fie scris rezultatul. Aceste valori sunt controlate de guest și, critic, autorizează o scriere în memoria pachetului. Kernel-ul parsează și validează header-ul IPv4 devreme (trataându-l ca pe un header standard de 20 de octeți, 0x45), luând decizii de rutare și fragmentare pe baza acestei versiuni. ulterior, în timpul fragmentării de ieșire, scrierea *checksum*-ului amânată se declanșează și suprascrie primul octet al header-ului, schimbând lungimea din 0x45 (20 bytes) în 0x4F (60 bytes). Nicio revalidare nu intervine între cele două momente. Fragmentatorul citește apoi header-ul ca fiind de 60 de octeți și include 32 de octeți din memoria host adiacență (care nu faceau parte din pachetul original) ca și cum ar fi opțiuni IP, emițându-le pe fir. Este un caz clasic de time-of-check/time-of-use (TOCTOU), dar fără competiție între fire de execuție: scrierea amânată are loc în cadrul operațiunilor normale de rețese, influențată de atacant.

Impactul real: de la info leak la execuție de cod pe host

Cercetătorul Paulos Yibelo (pwn.ai) a demonstrat că fiecare pachet crafted poate extrage aproximativ 32 de octeți de memorie host. La scară, acest leak repetabil permite maparea memoriei kernel-ului de pe host. Pe hardware propriu (configurat identic cu sandbox-urile Vercel), Yibelo a înlănțuit *leak*-ul cu alocații controlate pentru a obține scrieri selectate de 64 de octeți în memorie kernel, executând ulterior un helper cu root pe host și returnând un marker generat de host către guest. Vercel a confirmat că *memory leak*-ul a fost reproduabil pe sandbox-urile sale de producție, iar două pachete special construite au fost suficiente pentru a face crash host-ul și a prăbuși toate sandbox-urile de pe el. Important: execuția de cod pe host a fost demonstrată doar în laborator pe mașini de test; nu există dovezi de exploatare în medii de producție ale clienților. Totuși, Yibelo avertizează că exploit-urile pentru configurații slabe vor apărea în săptămâni, iar cele pentru configurații implicite ale hypervizorilor — în sub o lună.

Fix-ul upstream: validare defence-in-depth în cinci puncte critice

Commit-ul 6785011f8b16 introduce funcția helper ip_check_csum_start(), care validează metadatele checksum și respinge pachetele care ar plasa *checksum*-ul în interiorul header-ului IPv4. Validarea este aplicată în cinci locații distincte în codul de rețea, acoperind căile de procesare afectate. Autorul patch-ului descrie schimbarea ca o măsură defence-in-depth, notând că o validare completă a metadatelor checksum la intrarea pachetului în kernel rămâne o direcție de lucru viitoare. Patch-ul a fost aplicat în arborele de dezvoltare (net.git) pe 8 octombrie 2026 și fuzionat în mainline de Linus Torvalds pe 14 octombrie. Backport-urile către ramurile stabile sunt deja disponibile; verificarea versiunii kernel-ului activ devine astfel prioritate zero pentru orice echipă de operare.

Ce verifică și actualizează acum administratorul de infrastructură

  1. Identifică versiunea kernel-ului pe toate host-urile: uname -r și confrontează cu lista ramurilor patch-uite (5.10, 5.15, 6.1, 6.6, 6.12, 6.18, 7.2 sau mainline ≥ 6.12-rc cu commit-ul inclus).
  2. Aplică actualizările de securitate furnizate de distribuție (RHEL/AlmaLinux/Rocky, Ubuntu, Debian, Fedora etc.) sau recompilează kernel-ul din surse cu patch-ul backportat.
  3. Repornește host-urile afectate; pentru medii live-migration-capable, planifică *rolling reboot*-uri pentru a evita downtime-ul total.
  4. Validează că modulul vhost_net și driverele virtio sunt încărcate corect după reboot; rulează teste de fum (ping, iperf3, boot VM) pentru a confirma funcționalitatea de rețea.
  5. Monitorizează log-urile kernel (dmesg -T | grep -i csum) pentru eventuale mesaje de respingere a pachetelor invalide — indicație că fix-ul este activ și interceptează încercări de exploatare.
  6. Actualizează imaginile de bază (golden images) și template-urile de provisionare (Packer, Terraform, Ansible) cu kernel-ul patch-uit pentru a preveni deploy-uri viitoare vulnerabile.

PwnEscape nu este o vulnerabilitate de hypervisor, ci o defect de arhitectură în stiva de rețea Linux pe care o folosesc toate soluțiile de virtualizare bazate pe kernel. Actualizarea kernel-ului este singura mitigare completă; *workaround*-uri la nivel de hypervisor (de exemplu, dezactivarea checksum offloading în guest) reduc suprafața de atac dar impactează performanța și nu elimină cauza radicală. Pentru echipele care gestionează servere dedicate sau infrastructură cloud multi-tenant, integrarea rapidă a acestor patch-uri în ciclul de patch management este esențială. Resursele și ghidurile de hardening pentru kernel-uri Linux actualizate sunt disponibile pe dedicated-servers.ro, iar pentru soluții de monitorizare și alertare la nivel de host poți explora portofoliul serverspan.ro.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *