CVE-2026-98260
exec: de_thread() के तुरंत बाद POSIX टाइमर साफ़ करें
- प्रकाशित
- 6 अक्टू॰ 2026
- अद्यतन
- 30 अक्टू॰ 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 दिन
- प्रतिशत
- 8.2%
- मॉडल दिनांक
- 4 नव॰ 2026
ईपीएसएस एक सांख्यिकीय अनुमान है, कोई निश्चितता या प्रभाव का माप नहीं। इसे सीवीएसएस, केईवी स्थिति, एक्सपोज़र और अपने वातावरण के साथ मिलाएं।
सारांश
लिनक्स कर्नेल में, निम्नलिखित भेद्यता को हल किया गया है: exec: de_thread() के ठीक बाद POSIX टाइमर की सफ़ाई करें एक प्रति-थ्रेड CPU टाइमर उस थ्रेड के PID का संदर्भ रखता है जिससे वह जुड़ा होता है और, जब तक वह सशस्त्र (armed) रहता है, उसका नोड उस थ्रेड के posix_cputimers में कतारबद्ध रहता है। कार्य (task) को उस PID द्वारा खोजा जाता है। जब कोई गैर-लीडर थ्रेड exec() करता है, तो de_thread() बदल देता है कि उस PID का स्वामी कौन-सा कार्य है। pid_task(timer->it.cpu.pid, PIDTYPE_PID) तब NULL लौटाता है, लेकिन नोड अभी भी tsk पर कतारबद्ध रहता है, जो जीवित है। timer_lock_sighand() विफल लुकअप को यह अर्थ लेता है कि नोड पहले ही डीक्यू हो चुका है, इसलिए उसके पास पूर्ववत करने के लिए कुछ नहीं होता। begin_new_exec() exec_task_namespaces() के ठीक बाद posix_cpu_timers_exit(me) को कॉल करता है और यह बचे हुए नोड को हटा देता है, इसलिए स्थिति सामान्यतः अदृश्य रहती है। लेकिन bprm->point_of_no_return de_thread() से पहले सेट होता है, इसलिए यदि unshare_files(), set_mm_exe_file(), exec_mmap() या exec_task_namespaces() विफल होते हैं, तो कार्य वहाँ पहुँचने से पहले ही मर जाता है। तब exit_itimers() k_itimer को मुक्त कर देता है जबकि उसका नोड अभी भी कतारबद्ध है, और बाद में tsk को reap करने पर वह मुक्त किया गया नोड rbtree से मिटा दिया जाता है। संक्षेप में: गैर-लीडर थ्रेड B अभिभावक timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // नोड B पर कतारबद्ध है execve() de_thread(B) exchange_tids(B, leader) // B का PID अब लीडर का है release_task(leader) __exit_signal(leader) posix_cpu_timers_exit(leader) // लीडर की कतार साफ़ करता है, B की नहीं __unhash_process(leader) // उस PID का अब कोई कार्य नहीं है exec_mmap() mmap_read_lock_killable(old_mm) kill(B, SIGKILL) // -EINTR get_signal() do_exit() exit_itimers() posix_timer_delete() posix_cpu_timer_del() posix_timer_unhash_and_free() // कतारबद्ध रहते हुए ही मुक्त किया गया wait4() release_task(B) posix_cpu_timers_exit(B) cleanup_timerqueue() timerqueue_del() // use-after-free POSIX टाइमर की सफ़ाई को de_thread() के ठीक बाद ले जाएँ, इससे पहले कि बाद की कोई भी विफलता स्थिति कार्य को do_exit() में ले आए। [ tglx: सफ़ाई को de_thread() के ठीक बाद ले जाएँ ]
स्रोत
- CVE-2026-98260एक्सप्लॉइट
जिम्मेदारीपूर्ण उपयोग
भेद्यता जानकारी का उपयोग केवल उन प्रणालियों पर करें जिनके मालिक आप हैं या परीक्षण के लिए अधिकृत हैं। किटप्लॉइट सार्वजनिक अनुसंधान मेटाडेटा से लिंक करता है और शोषण कोड या दुर्भावनापूर्ण पेलोड को संग्रहीत नहीं करता है।