CVE-2026-98385
sched/cache: UAF को ठीक करने के लिए sched_cache_group को mm से अलग करें
- प्रकाशित
- 12 अक्टू॰ 2026
- अद्यतन
- 24 अक्टू॰ 2026
- सीएनए असाइन करना
- Linux
- साक्ष्य देखे गए
- 4 नव॰ 2026
प्राथमिक सीवीएसएस
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hकम · अगले 30 दिन
- प्रतिशत
- 7.3%
- मॉडल दिनांक
- 4 नव॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
Linux कर्नेल में, निम्नलिखित भेद्यता का समाधान किया गया है: sched/cache: UAF को ठीक करने के लिए sched_cache_group को mm से अलग करें। वर्तमान में sched cache समूहन mm द्वारा किया जाता है और शेड्यूलिंग आँकड़े sched_cache_stat mm संरचना में निवास करते हैं। यह शेड्यूलिंग आँकड़ों के जीवन चक्र को mm से बाँध देता है। account_mm_sched() में, शेड्यूलिंग आँकड़ों को task->mm->sc_stat द्वारा एक्सेस किया जाता है। हालाँकि, एक कार्य एक CPU पर mm बदल रहा हो सकता है जबकि दूसरा CPU account_mm_sched() चला रहा हो, और संभवतः उस पुराने mm को एक्सेस कर रहा हो जिसे मुक्त कर दिया गया था। यह समस्या Hyunwoo द्वारा KASAN के साथ परीक्षण चलाते समय पाई गई: https://lore.kernel.org/lkml/apPb-Dr4nPYuHQOK@v4bel/ mm मुक्त पथ में rq लॉक के अतिरिक्त अधिग्रहण को शुरू करके mm एक्सेस को क्रमबद्ध करने के बजाय, sched_cache_stat को mm_struct से निकालें, इसे sched_cache_group के रूप में पुनः नामित करें और इसके जीवन चक्र को mm_struct से अलग, अपनी स्वयं की संदर्भ गणना के साथ प्रबंधित करें। यह हमें अगले पैच में सीधे कार्य से sched_cache_group एक्सेस करने की अनुमति देता है, और जब कोई कार्य इसमें लिंक होता है तो sched_cache_group पर एक refcount जोड़ता है। यह उस स्थिति में use after free समस्या को रोकता है जब कोई कार्य नए mm पर स्विच करता है जबकि account_mm_sched() कहीं और किया जा रहा हो, और पुराने मुक्त किए गए mm और उसके sched cache stat को एक्सेस करता है। इस पुनर्संरचना का अन्य लाभ यह है कि भविष्य में, कार्यों को LLC में समूहित करने में उपयोगकर्ता-परिभाषित समूहन, या cgroup, cookie group, numa_group या अन्य के साथ संबद्ध होने की लचीलापन होगी, न कि केवल एकल mm पता स्थान के साथ। sched_cache_stat का नाम बदलकर sched_cache_group करें और इसे mm_struct से आवंटित एक refcounted ऑब्जेक्ट में बदलें। अब mm_struct इसे एम्बेड करने के बजाय इस ऑब्जेक्ट के लिए एक पॉइंटर (sched_cache_grp) रखता है।
स्रोत
CVE-2026-98385 के आधिकारिक PoC का ARM64 Android पोर्ट, जो हार्डकोडेड हीप लेआउट स्थिरांकों के साथ कर्नेल Scheduler सबसिस्टम में रेस-कंडीशन स्थानीय विशेषाधिकार एस्केलेशन है।
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।