Det har upptäckts en sårbarhet i Linux-kärnan Bad Epoll, registrerad som CVE-2026-46242. Det gör det möjligt för en vanlig lokal användare utan särskilda rättigheter att höja sina privilegier till root. Enligt forskaren Jaejon Chon berör problemet inte bara Linux-skrivbord och servrar, utan även vissa Android-enheter med nya kärnversioner — detta understryks särskilt i beskrivningen av Bad Epoll.
Felet finns i subsystemet epoll — den standardmekanism i Linux som används för att spåra många filbeskrivare, nätverksanslutningar och I/O-händelser. Sådana mekanismer används aktivt av servrar, webbläsare och nätverkstjänster, så att helt stänga av epoll går inte. I den tekniska analysen beskrivs sårbarheten som en tävling som leder till use-after-free: när relaterade epoll-objekt stängs samtidigt, frigör en tråd interna strukturer medan en annan fortsätter att referera till dem.
Mer specifikt uppstår problemet vid en situation där en epoll-beskrivare övervakar en annan, och båda beskrivares stängs parallellt. Efter att __ep_remove() har anropats nollställs fältet file->f_ep tillfälligt, och den konkurrerande __fput() kan bestämma att ingen ytterligare rengöring behövs. Resultatet är att objektet struct eventpoll eller den relaterade struct file frigörs för tidigt, medan koden fortfarande arbetar med pekare som refererar till redan frigjord minne. Det är just detta som ger angriparen ett medel för att korrumpera kärnminnet.
För attacken krävs inga ytterligare capabilities eller användarnamespaces — det räcker med att CONFIG_EPOLL är aktiverat, vilket gör problemet särskilt obehagligt för vanliga Linux-system. Enligt den primära rapporten från forskaren, buggen infördes i kärnan genom en commit 58c9b016e128 år 2023, och åtgärdades med en commit a6dc643c693.
Trots det mycket snäva tidsfönstret för tävlingen har forskaren förberett ett fungerande exploiteringsverktyg för Google kernelCTF. I beskrivningen av exploateringen visas hur felet blir en 8-byte-inmatning i den frigjorda strukturen, vilket leder till en kärnminnesläcka via /proc/self/fdinfo, fångst av file->f_op->poll och en ROP-kedja för att få root. För målet lts-6.12.67 anges en tillförlitlighet på omkring 99%, för COS — cirka 98%; Android-exploit, enligt författaren, är fortfarande under arbete.
Utsatta är kärnor baserade på grenen 6.4 och nyare, om de inte har fått patchen. Gamla Android-enheter med kärnor 6.1, inklusive Pixel 8 och liknande modeller, anser författaren vara osårbara. Användare och administratörer har endast ett rimligt alternativ för skydd — att installera kärnuppdateringen från sin distribution eller enhetstillverkare.
Källa: linux.org.ru
