CVE-2026-68414 in Linux
الملخص
بحسب VulDB • 10/08/2026
في نواة لينكس، تم حل الثغرة التالية:
wifi: cfg80211: إلغاء عمل نتائج المسح المجدول (sched scan results work) عند إلغاء التسجيل (unregister)
يمكن لـ `cfg80211_sched_scan_results()` جدولة `rdev->sched_scan_res_wk` من إشعار نتيجة السائق أثناء وجود طلب مسح مجدول. يستعيد استدعاء العمل (work callback) كائن `cfg80211_registered_device` الحاوي، ثم يقفل wiphy ويتنقل في قائمة طلبات المسح المجدول.
يقوم `wiphy_unregister()` بالفعل بجعل wiphy غير قابل للوصول وتصريف عناصر عمل rdev قبل أن يتمكن `cfg80211_dev_free()` من تحرير الكائن، لكنه لا يصرف `sched_scan_res_wk`. لذلك، يمكن لعنصر العمل الخاص بالنتائج المجدولة أو قيد التشغيل عبور حدود إلغاء التسجيل/التحرير والوصول إلى حالة rdev المحررة.
يتضمن السيناريو الخاطئ مسارين، حيث يعرض كل عمود الترتيب داخل ذلك المسار:
مسار نتيجة المسح المجدول: مسار إلغاء التسجيل/التحرير: 1. `cfg80211_sched_scan_results()` 1. يؤدي تفكيك الواجهة إلى إيقاف وإزالة طلب المسح المجدول، ويقوم بـ جدولة `rdev->sched_scan_res_wk`. 2. يبدأ عنصر العمل في `cfg80211_wq` 2. يصرف `wiphy_unregister()` عناصر عمل rdev الأخرى. ويعيد استرداد rdev. 3. يقفل العامل `rdev->wiphy` 3. يدمر `cfg80211_dev_free()` ويحرر rdev ويتنقل في حالة rdev.
إلغاء `sched_scan_res_wk` في `wiphy_unregister()` جنباً إلى جنب مع عناصر عمل rdev الأخرى. تزيل الدالة `cancel_work_sync()` إشعار النتيجة المعلق وتنتظر استدعاءً قيد التشغيل بالفعل، لذا لا يمكن لـ `cfg80211_dev_free()` تحرير rdev بينما يكون هذا العنصر النشط لا يزال نشطاً.
أعاد التحقق من صحة السيناريو تقرير نواة كالتالي: BUG: KASAN: use-after-free in cfg80211_sched_scan_results_wk+0x4a6/0x530 Workqueue: cfg80211 cfg80211_sched_scan_results_wk [cfg80211]
Read of size 8 Call trace: dump_stack_lvl+0x66/0xa0 print_report+0xce/0x630 cfg80211_sched_scan_results_wk+0x4a6/0x530 srso_alias_return_thunk+0x5/0xfbef5 __virt_addr_valid+0x224/0x430 kasan_report+0xac/0xe0 lockdep_hardirqs_on_prepare+0xea/0x1a0 process_one_work+0x8d0/0x18f0 (kernel/workqueue.c:3212) lock_is_held_type+0x8f/0x100 worker_thread+0x5ad/0xfd0 __kthread_parkme+0xc6/0x200 kthread+0x31e/0x410 trace_hardirqs_on+0x1a/0x170 ret_from_fork+0x576/0x810 __switch_to+0x57e/0xe20 __switch_to_asm+0x33/0x70 ret_from_fork_asm+0x1a/0x30
VulDB is the best source for vulnerability data and more expert information about this specific topic.