
Linux kernel के लिए CVE-2026-46242 पर आधारित विशेषाधिकार-वृद्धि एक्सप्लॉइट, जो epoll में रेस-कंडीशन यूज़-आफ्टर-फ्री दोष है और डेस्कटॉप, सर्वर तथा एंड्रॉइड डिवाइसों पर 99% विश्वसनीय रूट प्रदान करता है।

Google kernelCTF पर एक unprivileged प्रक्रिया root तक privilege escalate कर रही है।
Bad Epoll (CVE-2026-46242) Linux kernel के epoll subsystem में एक race-condition use-after-free है। यह बग एक unprivileged प्रक्रिया को root बनने देता है, न केवल Linux desktops और servers पर, बल्कि Android devices पर भी।
Bad Epoll को Jaeyoung Chung द्वारा Google kernelCTF में 0-day submission के रूप में report और exploit किया गया था, जो एक Linux kernel exploit को $71,337+ का इनाम देता है। Bad Epoll submission को $92,337 का इनाम मिला।
[!NOTE] Anthropic की AI, Mythos, ने उसी epoll code में एक और race bug खोजा, लेकिन Bad Epoll को छोड़ दिया।
एक दुर्लभ बग जो Android को root कर सकता है। अधिकांश Linux privilege-escalation bugs Android को बिल्कुल भी root नहीं कर सकते। उदाहरण के लिए, Copy Fail और इसके variants को ऐसे modules की आवश्यकता होती है जिन्हें Android कभी load नहीं करता। Google के kernelCTF पर exploit किए गए लगभग 130 vulnerabilities में से केवल लगभग दस ही Android को root करने के candidates हैं। Bad Epoll उनमें से एक है।
कोई kill-switch नहीं। Copy Fail और इसके variants को उनके vulnerable modules unload करके बेअसर किया जा सकता है, लेकिन epoll के पास ऐसा कोई विकल्प नहीं है। यह एक core kernel feature है जिस पर operating system, network services, और browsers सभी निर्भर करते हैं। इसे ठीक करने का एकमात्र तरीका patch लगाना है।
छोटी race window, लेकिन हमला 99% reliable। बग की race window केवल लगभग छह instructions चौड़ी है, और एक सामान्य प्रयास लगभग कभी इसे hit नहीं करता। Exploit उस window को चौड़ा करता है और एक retry loop चलाता है जो kernel को कभी crash नहीं करता। परिणाम एक 99% reliable exploit है, जैसा कि नीचे attack overview वर्णित करता है।
2023 में एक ही commit ने epoll code में दो अलग race conditions पैदा कीं, जो कुल मिलाकर केवल लगभग 2,500 lines हैं। दोनों ही critical bugs निकले जो privilege escalation का कारण बन सकते हैं।
पहला Anthropic के Mythos द्वारा खोजा गया और CVE-2026-43074 के रूप में report किया गया, जिसका विवरण Anthropic की public report, ANT-2026-CM0TCREP में है। यह परिणाम अपने आप में प्रभावशाली है, क्योंकि kernel race bugs को खोजना कठिन माना जाता है। इसने एक frontier AI model की race bugs खोजने की क्षमता दिखाई। बाद में एक स्वतंत्र researcher ने इसके लिए kernelCTF में एक 1-day exploit submit किया।
दूसरी race Bad Epoll है, जिसे Mythos ने छोड़ दिया। चूंकि Mythos ने इस छोटे epoll code path में पहला बग खोजा था, इसलिए संभवतः इसने उसी क्षेत्र की सार्थक गहराई से जांच की होगी। हम ठीक से नहीं जान सकते कि इसने Bad Epoll को क्यों छोड़ा, लेकिन संभवतः दो कारकों ने इसे खोजना कठिन बना दिया।
Race window बहुत छोटी है। यह केवल लगभग छह instructions चौड़ी है, इसलिए vulnerable code को देखते हुए भी सटीक thread interleaving की कल्पना करना कठिन है।
बहुत कम runtime evidence था। CVE-2026-43074 के fix होने के बाद, Bad Epoll का use-after-free आमतौर पर KASAN को trigger नहीं करता, जो kernel का मुख्य memory-error detector है। उस signal के बिना, Mythos के पास इसे एक वास्तविक बग के रूप में report करने का पर्याप्त confidence नहीं रहा होगा।
Bad Epoll को ठीक करना भी कठिन था। Maintainers का पहला patch इस समस्या को पूरी तरह ठीक नहीं कर पाया, और एक सही patch बग के पहली बार report होने के केवल दो महीने बाद आया। यह एक ऐसे kernel के लिए लंबा समय है जो आमतौर पर security issues को तत्परता से संभालता है।
कुल मिलाकर, Bad Epoll दिखाता है कि race conditions हर चरण में कितनी कठिन होती हैं। इन्हें एक frontier model के लिए भी खोजना कठिन है, सही ढंग से ठीक करना कठिन है, और, जैसा कि अगला section दिखाता है, reliably exploit करना कठिन है। यह एक ऐसी vulnerability research दिशा भी सुझाता है जो frontier AI models की उपस्थिति में भी खोजने योग्य बनी हुई है: संकीर्ण timing conditions और कमजोर evidence के पीछे छिपे वास्तविक security impact को उजागर करना।
[!NOTE] स्वतंत्र researchers Qi Tang और Junxi Qian ने भी 30 मार्च, 2026 को Linux kernel team को CVE-2026-43074 report किया था, उसी दिन जिस दिन Anthropic ने किया। upstream fix के credits में उनके नाम अनजाने में छूट गए थे। इन स्वतंत्र reports की ओर इशारा करने के लिए Guidong Han का धन्यवाद। तीनों researchers ने बाद में epoll में एक और race-condition use-after-free खोजा।
जिज्ञासुओं के लिए, यहाँ हमले का एक high-level overview है।
दो linked epoll objects। दोनों को एक साथ बंद करने पर race trigger होती है।
epoll के दो close paths एक ही समय पर चलते हैं और टकरा जाते हैं। एक object को free करता है जबकि दूसरा अभी भी उसमें लिख रहा होता है, और यही use-after-free (UAF) है।
Race window, और exploit इसे कैसे चलाता है।
Exploit चार epoll objects का उपयोग करता है जो दो जोड़ों में समूहित हैं। एक जोड़ा race trigger करता है, जबकि दूसरा victim बन जाता है। वहाँ से, exploit 8-byte UAF write को एक file object पर UAF में बदल देता है, और file की contents को पूरी तरह नियंत्रित करने के लिए cross-cache attack का उपयोग करता है।
बग को /proc/self/fdinfo के माध्यम से arbitrary kernel memory read में बदलना।
उस नियंत्रण के साथ, exploit /proc/self/fdinfo के माध्यम से kernel memory का arbitrary read प्राप्त करता है। अंत में, यह control flow को hijack करता है और root shell प्राप्त करने के लिए एक ROP chain execute करता है।