O vulnerabilitate în VFS al nucleului Linux care vă permite să vă escaladați privilegiile

O vulnerabilitate (CVE-2022-0185) a fost identificată în API-ul de context al sistemului de fișiere furnizat de nucleul Linux, care permite unui utilizator local să obțină privilegii de root pe sistem. Cercetătorul care a identificat problema a publicat o demonstrație a unui exploit care vă permite să executați cod ca root pe Ubuntu 20.04 în configurația implicită. Codul de exploatare este planificat să fie postat pe GitHub într-o săptămână după ce distribuțiile lansează o actualizare care remediază vulnerabilitatea.

Vulnerabilitatea există în funcția legacy_parse_param() din VFS și este cauzată de o eșec de verificare a dimensiunii maxime a parametrilor furnizați pe sistemele de fișiere care nu acceptă API-ul Context Filesystem. Trecerea unui parametru prea mare poate provoca o depășire a variabilei întregi utilizate pentru a calcula dimensiunea datelor de scris - codul are o verificare a depășirii tamponului „dacă (len > PAGE_SIZE - 2 - dimensiune)”, care nu funcționează dacă valoarea mărimii este mai mare decât 4094. pentru depășirea întregului prin limita inferioară (depășirea întregului, când turnați 4096 - 2 - 4095 la unsigned int, rezultatul este 2147483648).

Această eroare permite, la accesarea unei imagini de sistem de fișiere special concepute, să provoace o depășire a memoriei tampon și să se suprascrie datele kernelului după zona de memorie alocată. Pentru a exploata vulnerabilitatea, trebuie să aveți drepturi CAP_SYS_ADMIN, adică. puteri de administrator. Problema este că un utilizator neprivilegiat poate obține astfel de permisiuni într-un container izolat dacă sistemul are activat suportul pentru spațiile de nume de utilizator. De exemplu, spațiile de nume de utilizator sunt activate implicit pe Ubuntu și Fedora, dar nu sunt activate pe Debian și RHEL (cu excepția cazului în care sunt utilizate platforme de izolare a containerelor).

Problema apare de la kernel-ul Linux 5.1 și a fost rezolvată în actualizările de ieri 5.16.2, 5.15.16, 5.10.93, 5.4.173. Actualizări de pachete care remediază vulnerabilitatea au fost deja lansate pentru RHEL, Debian, Fedora și Ubuntu. Remedierea nu este încă disponibilă pe Arch Linux, Gentoo, SUSE și openSUSE. Ca o soluție de securitate pentru sistemele care nu folosesc izolarea containerelor, puteți seta valoarea sysctl „user.max_user_namespaces” la 0: echo „user.max_user_namespaces=0” > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Sursa: opennet.ru

Adauga un comentariu