Bad Epoll: în Linux și Android a fost descoperită o vulnerabilitate pentru obținerea accesului root


1

O vulnerabilitate a fost descoperită în nucleul Linux Bad Epoll, înregistrată ca CVE-2026-46242. Aceasta permite unui utilizator local obișnuit, fără drepturi speciale, să își crească privilegiile la root. Potrivit autorului studiului, Jaeon Chong, problema afectează nu doar desktop-urile și serverele Linux, ci și unele dispozitive Android cu noi versiuni de kernel — acest lucru este subliniat separat în descrierea Bad Epoll.

Eroarea se află în subsistemul epoll — mecanismul standard Linux pentru urmărirea mai multor descrișteri de fișiere, conexiuni de rețea și evenimente de intrare/ieșire. Aceste mecanisme sunt utilizate activ de servere, browsere și servicii de rețea, prin urmare, pur și simplu dezactivarea epoll nu este posibilă. În analiza tehnică vulnerabilitatea este descrisă ca o competiție care conduce la use-after-free: în timpul închiderii simultane a obiectelor epoll asociate, un fir eliberează structurile interne, în timp ce altul continuă să le acceseze.

Mai exact, problema apare în situația în care un descriitor epoll monitorizează un altul, iar ambele descriitoare sunt închise în paralel. După apelul __ep_remove(), câmpul file->f_ep este temporar setat pe zero, iar __fput() concurent poate decide că o curățare suplimentară nu mai este necesară. Ca urmare, obiectul struct eventpoll sau struct file asociat este eliberat prea devreme, dar codul continuă să lucreze cu pointeri pe o memorie deja eliberată. Acesta este exact ceea ce oferă atacatorului un primitiv pentru coruperea memoriei nucleului.

Pentru atac nu sunt necesare capabilități suplimentare și nu sunt necesare namespace-uri de utilizator — este suficient să existe CONFIG_EPOLL, ceea ce face problema deosebit de neplăcută pentru sistemele Linux obișnuite. Conform raportului inițial al cercetătorului, bugul a fost introdus în kernel printr-un commit 58c9b016e128 în 2023, iar corectat prin commit a6dc643c693.

În ciuda unei feronii foarte înguste, cercetătorul a pregătit un exploit funcțional pentru Google kernelCTF. În descrierea exploatării se arată cum eroarea se transformă într-o înregistrare de 8 byte în structura eliberată, apoi într-o scurgere de memorie a nucleului prin /proc/self/fdinfo, interceptarea file->f_op->poll și un lanț ROP pentru obținerea root-ului. Pentru ținta lts-6.12.67, fiabilitatea este declarată a fi de aproximativ 99%, pentru COS — de aproximativ 98%; exploit-ul Android, conform autorului, este încă în lucru.

Sub atac sunt nucleele bazate pe ramura 6.4 și mai recente, dacă patch-ul nu a fost aplicat. Dispozitivele Android mai vechi cu nucleele 6.1, inclusiv Pixel 8 și modele similare, autorul consideră că sunt invulnerabile. Utilizatorii și administratorii au o singură variantă corectă de protecție - să instaleze actualizarea kernel-ului de la distribuția sau furnizorul dispozitivului lor.

Sursa: linux.org.ru

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