Bad Epoll: v Linuxu in Androidu so našli ranljivost za pridobitev root-dostopa


1

Odkrita je ranljivost v jedru Linuxa Bad Epoll, registrirana kot CVE-2026-46242. Omogoča navadnemu lokalnemu uporabniku brez posebnih pravic, da poveča privilegije do root. Po podatkih avtorja raziskave Jaeona Chona težava vpliva ne le na Linux namizja in strežnike, temveč tudi na del naprav Android z novimi različicami jedra — to je posebej poudarjeno v opisovanju Bad Epoll.

Napaka se nahaja v podsistemu epoll , standardnem mehanizmu v Linuxu za sledenje številnim datotečnim descriptorjem, omrežnim povezavam in dogodkom vhod-izhod. Ti mehanizmi se aktivno uporabljajo na strežnikih, brskalnikih in omrežnih storitvah, zato epoll preprosto onemogočiti ni mogoče. V tehnični analizi je ranljivost opisana kot tekma, ki vodi do use-after-free: pri hkratnem zapiranju povezanih epoll-objektov ena nit sprosti notranje strukture, druga pa se še naprej sklicuje nanje.

Natančneje, težava se pojavi v primeru, ko en epoll-deskriptor spremlja drugega, oba pa se zapreta hkrati. Po klicu __ep_remove() se polje file->f_ep začasno ponastavi, konkurenčni __fput() pa lahko odloči, da dodatno čiščenje ni več potrebno. Zaradi tega se objekt struct eventpoll ali povezan struct file sprosti prezgodaj, a koda še vedno dela z kazalniki na že sproščeno pomnilnik. To daje napadalcu način za poškodovanje pomnilnika jedra.

Za napad ni potrebnih dodatnih zmogljivosti niti uporabniških imenikov — zadostuje prisotnost CONFIG_EPOLL, kar težavo naredi še posebej neprijetno za običajne Linux sisteme. Po prvotnem poročilu raziskovalca, je bila napaka v jedro vključena s commitom 58c9b016e128 leta 2023, popravljen pa je bil s commitom a6dc643c693.

Kljub zelo ozkemu oknu tekme je raziskovalec pripravil delujoč exploit za Google kernelCTF. V opisovanju eksploatacije je prikazano, kako napaka postane 8-bajtni zapis v sproščeni strukturi, nato pa uhajanje pomnilnika jedra preko /proc/self/fdinfo, zajem file->f_op->poll in ROP-veriga za pridobitev root-a. Za cilj lts-6.12.67 je bila izjavila zanesljivost okoli 99%, za COS okoli 98%; Android exploit naj bi bil, po besedah avtorja, še v delu.

Pod udarom so jedra, temelječa na veji 6.4 in novejše, če v njih ni preneseno popravilo. Stari Android naprave na jedrih 6.1, vključno s Pixel 8 in podobnimi modeli, avtor meni neprekinjeno smatraju neosjetljivima. Korisnicima i administratorima ostaje jedina normalna opcija zaštite — instalirati ažuriranje jezgra od svoje distribucije ili dobavljača uređaja.

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster