CVE-2026-98260
exec: تنظيف مؤقتات POSIX مباشرةً بعد de_thread()
- تم النشر
- 06/10/2026
- محدث
- 30/10/2026
- تخصيص CNA
- Linux
- الأدلة المرصودة
- 04/11/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hمنخفض · الثلاثين يومًا القادمة
- المئوية
- 8.2%
- تاريخ الموديل
- 04/11/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
في نواة Linux، تم إصلاح الثغرة الأمنية التالية: exec: تنظيف مؤقتات POSIX مباشرةً بعد de_thread() يحتفظ مؤقت CPU الخاص بكل خيط بمرجع إلى PID الخيط المرتبط به، وبينما يكون مسلّحًا، تُدرج عقدته في قائمة posix_cputimers الخاصة بذلك الخيط. ويتم البحث عن المهمة بواسطة ذلك PID. عندما ينفّذ خيط غير قائد exec()، يغيّر de_thread() المهمة التي تملك ذلك PID. عندئذٍ تُرجع pid_task(timer->it.cpu.pid, PIDTYPE_PID) القيمة NULL، لكن العقدة لا تزال مُدرجة في قائمة tsk، وهي حيّة. تفترض timer_lock_sighand() أن فشل البحث يعني أن العقدة قد أُزيلت بالفعل من القائمة، لذا ليس لديها ما تتراجع عنه. تستدعي begin_new_exec() الدالة posix_cpu_timers_exit(me) مباشرةً بعد exec_task_namespaces()، وهذا يزيل العقدة المتبقية، لذا تبقى الحالة عادةً غير مرئية. لكن bprm->point_of_no_return يُضبط قبل de_thread()، لذا إذا فشلت unshare_files() أو set_mm_exe_file() أو exec_mmap() أو exec_task_namespaces()، تموت المهمة قبل أن تصل إلى هناك. عندئذٍ تحرّر exit_itimers() بنية k_itimer بينما لا تزال عقدتها مُدرجة في القائمة، ويؤدي حصاد tsk لاحقًا إلى محو تلك العقدة المحرّرة من شجرة rbtree. باختصار: الخيط غير القائد B الأب timer_create(CLOCK_THREAD_CPUTIME_ID) timer_settime() arm_timer() // تُدرج العقدة في قائمة B execve() de_thread(B) exchange_tids(B, leader) // أصبح PID الخاص بـ B مملوكًا للقائد 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() // استخدام بعد التحرير انقل تنظيف مؤقت POSIX إلى ما بعد de_thread() مباشرةً قبل أن تؤدي أي من شروط الفشل اللاحقة إلى إدخال المهمة في do_exit(). [ tglx: نقل التنظيف إلى ما بعد de_thread() مباشرةً ]
المصادر
- CVE-2026-98260استغلال
بحث LPE لنواة Android حول CVE-2026-98260 (استخدام بعد التحرير في posix-cpu-timers): أداة PoC للاستغلال، وسلاسل أوامر shell بصلاحيات uid-0 عبر بيانات اعتماد مزيفة وحقيقية، بالإضافة إلى تطبيق تمهيدي لـ Shizuku/KernelSU.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.