CVE-2026-68138
net/sched: تسلسل qdisc_rtab_list ضد get/put المتزامن
- تم النشر
- 10/08/2026
- محدث
- 23/08/2026
- تخصيص CNA
- Linux
- الأدلة المرصودة
- 19/08/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منخفض · الثلاثين يومًا القادمة
- المئوية
- 21.0%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
في نواة لينكس، تم حل الثغرة الأمنية التالية: net/sched: تسلسل qdisc_rtab_list ضد عمليات get/put المتزامنة تقوم الدالتان qdisc_get_rtab() و qdisc_put_rtab() بتعديل القائمة المرتبطة أحادية الاتجاه العامة للعملية qdisc_rtab_list وعداد مرجعي 'int refcnt' غير ذري وبسيط بدون أي قفل. كان هذا آمنًا فقط لأن كل مستدعي كان يمسك تاريخيًا بقفل RTNL المتبادل، الذي كان يسلسل جميع عمليات البحث والإدراج والتحرير لجداول المعدلات. لم يعد هذا الثابت قائمًا. تقوم cls_flower بتعيين TCF_PROTO_OPS_DOIT_UNLOCKED، لذا تُبقي tc_new_tfilter() قيمة rtnl_held == false لها وتضبط TCA_ACT_FLAGS_NO_RTNL. تنتشر هذه العلامة عبر tcf_exts_validate_ex() -> tcf_action_init() -> tcf_action_init_1() -> tcf_police_init()، التي تستدعي qdisc_get_rtab()/qdisc_put_rtab() بدون الإمساك بقفل RTNL المتبادل. يحدث تسابق بين طلبي RTM_NEWTFILTER على وحدتي معالجة مركزية مختلفتين، كل منهما يضيف عامل تصفية flower مع إجراء police يحمل نفس المعدل، على qdisc_rtab_list وعلى العداد المرجعي غير الذري، مما يؤدي إلى استخدام بعد التحرير / تحرير مزدوج لبنية struct qdisc_rate_table من نوع kmalloc-2k. qdisc_rtab_list هي قائمة عامة واحدة (وليست لكل مساحة أسماء شبكات)، لذا فإن الكائن التالف مشترك على مستوى النظام بأكمله. BUG: KASAN: slab-use-after-free in qdisc_put_rtab+0x12f/0x160 qdisc_put_rtab+0x12f/0x160 tcf_police_init+0xda9/0x1590 tcf_action_init_1+0x460/0x6b0 tcf_action_init+0x439/0xa40 tcf_exts_validate_ex+0x42d/0x550 fl_change+0xddd/0x7da0 tc_new_tfilter+0xaa7/0x2420 rtnetlink_rcv_msg+0x95e/0xe90 والتي تنتمي إلى ذاكرة التخزين المؤقت kmalloc-2k بحجم 2048 قم بحماية qdisc_rtab_list والعداد المرجعي بقفل دوران مخصص. يتم تنفيذ عملية التخصيص (النائمة، GFP_KERNEL) في qdisc_get_rtab() قبل أخذ القفل؛ إذا قام مُدرِج متزامن بإضافة جدول مطابق في هذه الأثناء، يتم تحرير الجدول المُخصص حديثًا تحت القفل، بحيث لا يتم تسريب أي نسخة مكررة. الآن تقوم qdisc_put_rtab() بإنقاص العداد المرجعي وفصل العنصر تحت نفس القفل.
المصادر
3- CVE-2026-68138استغلال
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.