Tehnica de exploatare a vulnerabilității în subsistemul tty al kernel-ului Linux a fost dezvăluită.

Cercetătorii de la echipa Google Project Zero au publicat o metodă de exploatare a vulnerabilității (CVE-2020-29661) în implementarea gestionatorului ioctl TIOCSPGRP din sub-sistemul tty al nucleului Linux, precum și au analizat în detaliu mecanismele de protecție care ar putea bloca astfel de vulnerabilități.

Eroarea problematică a fost corectată în nucleul Linux pe 3 decembrie anul trecut. Problema se manifestă în nucleele până la versiunea 5.9.13, dar majoritatea distribuțiilor au remediat problema în actualizările de pachete cu nucleu propuse anul trecut (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). O vulnerabilitate similară (CVE-2020-29660) a fost găsită în implementarea apelului ioctl TIOCGSID, dar aceasta a fost de asemenea remediată pe scară largă.

Problema este generată de o eroare în stabilirea blocajelor, care duce la o stare de competiție în codul drivers/tty/tty_jobctrl.c și a fost exploatată pentru a crea condiții de accesarea memoriei după eliberare (use-after-free), exploatabile din spațiul utilizatorului prin manipularea apelului ioctl TIOCSPGRP. Un exploit funcțional a fost demonstrat pentru creșterea privilegiilor în Debian 10 cu nucleul 4.19.0-13-amd64.

În articolul publicat, accentul nu este pus atât pe tehnica de creare a unui exploit funcțional, ci pe ce instrumente există în nucleu pentru a proteja împotriva unor astfel de vulnerabilități. Concluzia este descurajantă, metode precum segmentarea memoriei în heap și controlul accesului la memorie după eliberare nu sunt utilizate de fapt, deoarece duc la scăderi de performanță, iar protecția bazată pe CFI (Control Flow Integrity), care blochează exploiturile în stadiile târzii ale atacului, necesită îmbunătățiri.

Când se consideră ce ar putea schimba situația pe termen lung, se subliniază utilizarea analizatorilor statici avansați sau folosirea unor limbaje care asigură un management sigur al memoriei, precum Rust și dialecte ale limbii C cu anotații extinse (de exemplu, Checked C), în etapa de compilare, care verifică starea blocajelor, obiectelor și pointerilor. Printre metodele de protecție se menționează activarea modului panic_on_oops, trecerea structurilor nucleului în mod doar pentru citire și limitarea accesului la apelurile de sistem prin mecanisme precum seccomp.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster