1 पॉइंट द्वारा GN⁺ 4 시간 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Linux kernel के epoll subsystem में race condition UAF vulnerability है, जिससे unprivileged process Linux desktop/server के साथ-साथ Android devices पर भी root privileges हासिल कर सकता है
  • इस vulnerability को Jaeyoung Chung ने Google kernelCTF में 0-day के रूप में submit करके report और exploit किया, और kernelCTF Linux kernel exploits के लिए $71,337+ का reward देता है
  • Anthropic के AI Mythos ने उसी epoll code में एक अलग race condition bug, CVE-2026-43074, खोजा था, लेकिन Bad Epoll उससे छूट गया
  • epoll एक core kernel feature है जिस पर operating systems, network services और browsers निर्भर करते हैं, इसलिए इसे disable नहीं किया जा सकता; किसी सरल workaround के बिना patch apply करना ही समाधान है
  • यह vulnerability 2023-04-08 के commit 58c9b016e128 में introduce हुई और 2026-04-24 के commit a6dc643c6931 से fix हुई; v6.4 या उससे ऊपर based kernels वाली ऐसी distributions प्रभावित हो सकती हैं जिनमें fix backport नहीं हुआ है

Bad Epoll की प्रकृति और severity

  • Bad Epoll Linux kernel के epoll subsystem में race condition use-after-free (UAF) vulnerability है, और इसका identifier CVE-2026-46242 है
  • unprivileged process root privileges हासिल कर सकता है, और यह Linux desktop/server के साथ-साथ Android devices को भी प्रभावित कर सकती है
  • इसे Google kernelCTF में 0-day के रूप में submit किया गया था, और Jaeyoung Chung ने इसे report और exploit किया
  • kernelCTF Linux kernel exploits के लिए $71,337+ का reward देता है

यह खतरनाक क्यों है

  • यह ऐसा Linux privilege escalation bug है जिसमें Android root की संभावना दुर्लभ है
    • कई Linux privilege escalation vulnerabilities को ऐसे modules की जरूरत होती है जिन्हें Android load नहीं करता, इसलिए वे Android root तक नहीं ले जातीं
    • Google kernelCTF में exploit की गई लगभग 130 vulnerabilities में से Android root candidates करीब 10 हैं, और Bad Epoll उनमें से एक है
  • इसे Chrome renderer sandbox के अंदर भी trigger किया जा सकता है
    • यह sandbox लगभग सभी अन्य kernel bugs को रोक देता है
    • renderer exploit और Bad Epoll को chain करने पर Project Zero द्वारा MSG_OOB में दिखाए गए case जैसी kernel code execution impact तक पहुंचा जा सकता है
  • epoll में कोई kill-switch नहीं है
    • Copy Fail series को vulnerable module unload करके neutralize किया जा सकता है
    • epoll ऐसा core feature है जिस पर operating system, network services और browsers निर्भर करते हैं, इसलिए इसे disable नहीं किया जा सकता
    • समाधान सिर्फ patch apply करना है
  • race window करीब 6 instructions जितनी बहुत छोटी है
    • सामान्य प्रयास लगभग कभी match नहीं होते
    • exploit race window को बढ़ाता है और kernel को crash किए बिना retry loop चलाता है
    • नतीजतन kernelCTF target पर करीब 99% reliability दिखती है

Mythos से छूटा bug

  • 2023 के एक single commit 58c9b016e128 ने लगभग 2,500 lines के epoll code में दो अलग-अलग race conditions introduce कीं
  • Anthropic के Mythos ने उनमें से एक खोजकर CVE-2026-43074 के रूप में report किया
    • यह result kernel race condition bugs detect करने की कठिनाई के लिहाज से एक महत्वपूर्ण example है
    • बाद में एक independent researcher ने इस vulnerability का 1-day exploit kernelCTF में submit किया
  • दूसरी race condition Bad Epoll है, जिसे Mythos ने miss कर दिया
    • चूंकि Mythos ने उसी छोटे epoll code path में पहला bug खोजा था, इसलिए संभव है कि उसने उसी area को meaningful तरीके से investigate किया हो
    • Bad Epoll छूटने का exact कारण ज्ञात नहीं है
  • Bad Epoll detect करना मुश्किल रहा हो सकता है, इसके कारण
    • race window सिर्फ करीब 6 instructions की है, इसलिए vulnerable code देखकर ही exact thread interleaving की कल्पना करना मुश्किल है
    • CVE-2026-43074 fix के बाद Bad Epoll का UAF आमतौर पर KASAN trigger नहीं करता
    • KASAN signal न होने पर Mythos के पास इसे real bug के रूप में report करने के लिए पर्याप्त confidence शायद नहीं रहा होगा
  • fix करना भी आसान नहीं था
    • maintainer का पहला patch समस्या को पूरी तरह fix नहीं कर पाया
    • सही patch पहली report के दो महीने बाद mainline में गया

attack flow

  • दो epoll close paths एक साथ execute होकर collide करते हैं
    • एक path object free कर रहा होता है, जबकि दूसरा path उसी object में write करता रहता है, जिससे UAF होता है
  • exploit चार epoll objects को दो pairs में organize करता है
    • एक pair race condition trigger करता है
    • दूसरा pair victim object बनता है
  • इसके बाद 8-byte UAF write को file object UAF में बदला जाता है
    • cross-cache attack से file content पर पूरा control हासिल किया जाता है
  • control मिलने के बाद /proc/self/fdinfo के जरिए arbitrary kernel memory read हासिल किया जाता है
  • final stage में control flow hijack करके ROP chain execute की जाती है और root shell मिलता है
  • detailed technical material

mitigation और affected versions

  • epoll को disable नहीं किया जा सकता, इसलिए कोई simple workaround नहीं है
  • समाधान upstream commit a6dc643c6931 या distribution backport apply करना है
  • vulnerability introduction और fix के समय
    • introduced: [58c9b016e128], 2023-04-08
    • fixed: [a6dc643c6931], 2026-04-24
  • v6.4 या उससे ऊपर based kernels इस्तेमाल करने वाली और fix backport अभी apply न करने वाली Linux distributions प्रभावित हो सकती हैं
  • v6.1 based पुराने kernels प्रभावित नहीं हैं, क्योंकि vulnerability v6.4 में introduce हुई थी

exploit targets और Android status

  • मौजूदा exploit Google kernelCTF targets के हिसाब से लिखा गया है
    • lts-6.12.67 (LTS): 99% reliable
    • cos-121-18867.294.100 (COS): 98% reliable
  • Android exploit अभी progress में है
    • Pixel 10, kernel v6.6+: मौजूदा PoC UAF trigger करता है, और full root exploit पर काम जारी है
    • Android exploit और writeup पूरा होने के बाद public किए जाएंगे
    • Pixel 8 और अन्य v6.1 based devices प्रभावित नहीं हैं, क्योंकि vulnerability v6.4 में introduce हुई थी

timeline

  • 2023-04-08: commit 58c9b016e128 से epoll में bug introduce हुआ
  • 2026-02-17: bug security@kernel.org को report किया गया
  • 2026-02-17: maintainer ने patch prototype propose किया, लेकिन वह सही fix नहीं था और discussion रुक गई
  • 2026-04-02: Mythos द्वारा खोजे गए CVE-2026-43074 का fix mainline में गया
  • 2026-04-22: बची हुई समस्या फिर से report की गई
  • 2026-04-24: Bad Epoll fix commit a6dc643c6931 mainline में गया

नाम और references

  • Bad Epoll नाम Android root-capable kernel bugs की “Bad” series का अनुसरण करता है
  • यह page short version है, और complete root-cause analysis, exploit documents और code अलग links में दिए गए हैं

1 टिप्पणियां

 
GN⁺ 4 시간 전
Lobste.rs की राय
  • यह vulnerability Chrome sandbox से reachable है, यह सच में बड़ी बात है, और यह kCTF में report हुई थी लेकिन इनाम सिर्फ $71k रहा, यह थोड़ा हैरान करने वाला है

  • Bryan Cantrill फिर सही निकला

    • मानना थोड़ा शर्मनाक है, लेकिन सच कहूँ तो मेरा पहला खयाल भी यही था
    • जिज्ञासा है। उसने क्या सही कहा था, इसका context समझ नहीं आ रहा
    • अगर संभव हो तो थोड़ा context बता दें
  • ऊपर से खाली दिखने वाले repository से धोखा मत खाइए। exploit का लिंक README के नीचे दिया है
    अभी मैंने इसे test नहीं किया है, और कोई mitigation नहीं है। authors का दावा है कि इससे Android rooting भी संभव है, इसलिए Android ecosystem को देखते हुए लगता है मेरा manufacturer शायद लगभग एक महीने बाद patch देगा। और यह Chrome renderer sandbox में भी काम करता है

    • मैंने 2023 में Android phone खरीदा था और आखिरी kernel update 2024 के बीच में मिला था। अगर यह bug उसी समय का है, तो patch मिलने वाले लोग ही शायद अपवाद होंगे
  • क्या यह Android पर भी काम करता है?

    • यह दूसरी पंक्ति में लिखा है
  • यह कैसे मिला, इस बारे में कोई जानकारी है? Mythos इसे miss कर गया था, इसलिए सोच रहा हूँ कि क्या यह किसी दूसरे बड़े language model की मदद से मिला, या किसी इंसान ने review करके ढूँढा
    अगर ऐसा है, तो यह भी जानना चाहूँगा कि उन्होंने खास तौर पर इसी हिस्से को क्यों देखा

  • “कई Linux distributions, अगर वे v6.4 या उससे ऊपर के kernel पर आधारित हैं और उन्होंने अभी fix backport नहीं किया है, तो प्रभावित हो सकते हैं। ऊपर दिए गए fix commit का backport हुआ है या नहीं, यह जानने के लिए अपनी distribution के kernel security updates देखें। पुराने v6.1 आधारित kernel प्रभावित नहीं हैं, क्योंकि यह bug v6.4 में introduce हुआ था।”
    अफसोस। उम्मीद थी कि यह phone rooting के लिए अच्छा तरीका होगा, लेकिन यह इतना नया है कि ज्यादा खास उपयोगी नहीं लगता। मेरे phone में 5.15 है