Bad Epoll: kwetsbaarheid in Linux en Android ontdekt voor het verkrijgen van root-toegang


1

In de Linux-kern is een kwetsbaarheid onthuld Bad Epoll, geregistreerd als CVE-2026-46242. Het stelt een normale lokale gebruiker zonder speciale rechten in staat om zijn privileges tot root te verhogen. Volgens de auteur van het onderzoek, Jaeon Chong, betreft het probleem niet alleen Linux-desktops en servers, maar ook sommige Android-apparaten op nieuwe versies van de kernel — dit wordt apart benadrukt in de beschrijving van Bad Epoll.

De fout bevindt zich in de sub-systeem epoll — de standaardmechanisme van Linux voor het volgen van meerdere bestandshandles, netwerkverbindingen en I/O-gebeurtenissen. Dergelijke mechanismen worden veel gebruikt door servers, browsers en netwerkdiensten, daarom kan epoll niet simpelweg worden uitgeschakeld. In de technische analyse wordt de kwetsbaarheid beschreven als een raceconditie die leidt tot use-after-free: bij het gelijktijdig sluiten van gerelateerde epoll-objecten bevrijdt de ene thread interne structuren, terwijl de andere ermee verdergaat.

In meer detail: het probleem doet zich voor in een situatie waarin één epoll-handle de andere in de gaten houdt, en beide handles parallel worden gesloten. Na het aanroepen van __ep_remove() wordt het veld file->f_ep tijdelijk leeggemaakt, en de concurrerende __fput() kan besluiten dat aanvullende opruiming niet meer nodig is. Als gevolg hiervan wordt het object struct eventpoll of de bijbehorende struct file te vroeg vrijgegeven, maar de code blijft werken met pointers naar al vrijgegeven geheugen. Dit geeft de aanvaller precies de primitieve om het geheugen van de kernel te beschadigen.

Voor de aanval zijn geen extra capabilities of user namespaces nodig — het volstaat dat CONFIG_EPOLL aanwezig is, wat het probleem bijzonder vervelend maakt voor gewone Linux-systemen. Volgens het voorlopige rapport van de onderzoeker, werd de bug aan de kernel toegevoegd via de commit 58c9b016e128 in 2023, en gecorrigeerd via de commit a6dc643c693.

Ondanks het zeer smalle venster van de race, heeft de onderzoeker een werkende exploit voorbereid voor Google kernelCTF. In de beschrijving van de exploitatie wordt getoond hoe de fout verandert in een 8-byte record in een vrijgegeven structuur, vervolgens in een geheugolek via /proc/self/fdinfo, het onderscheppen van file->f_op->poll en een ROP-keten om root te verkrijgen. Voor de doel lts-6.12.67 is een betrouwbaarheid van ongeveer 99% opgegeven, voor COS ongeveer 98%; de Android-exploit is, volgens de auteur, nog in de maak.

Onder vuur liggen kernels die zijn gebaseerd op de tak 6.4 en nieuwer, als het daar geen correctie voor is overgezet. Oude Android-apparaten op kernels 6.1, inclusief Pixel 8 en dergelijke modellen, de auteur wordt als onkwetsbaar beschouwd. Voor gebruikers en beheerders blijft de enige normale optie voor bescherming - de kernelupdate van hun distributie of apparaatleverancier te installeren.

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster