CVE-2025-40271
fs/proc: إصلاح UAF في proc_readdir_de()
- تم النشر
- 06/12/2025
- محدث
- 05/08/2026
- تخصيص CNA
- Linux
- الأدلة المرصودة
- 04/05/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منخفض · الثلاثين يومًا القادمة
- المئوية
- 37.8%
- تاريخ الموديل
- 13/10/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
في نواة لينكس، تم حل الثغرة الأمنية التالية: fs/proc: fix uaf in proc_readdir_de() Pde يتم مسحه من شجرة rbtree الفرعية عبر rb_erase()، لكن لا يتم تعيين العقدة إلى EMPTY، الأمر الذي قد يؤدي إلى وصول UAF. يجب استخدام RB_CLEAR_NODE() لتعيين العقدة الممسوحة إلى EMPTY، وعندها سيعيد pde_subdir_next() القيمة NULL لتجنّب وصول UAF. وجدنا مشكلة UAF أثناء استخدام اختبار stress-ng، إذ يلزم تشغيل حالتي الاختبار getdent و tun في الوقت نفسه. خطوات المشكلة هي كما يلي: 1) استخدام getdent لاجتياز الدليل /proc/pid/net/dev_snmp6/، ويكون pde الحالي هو tun3؛ 2) في [النوافذ الزمنية] إلغاء تسجيل جهاز الشبكة tun3 و tun2، ومسحهما من rbtree. امسح tun3 أولاً، ثم امسح tun2. سيتم تحرير pde(tun2) إلى slab؛ 3) متابعة عملية getdent، ثم سيعيد pde_subdir_next() العقدة pde(tun2) التي تم تحريرها، مما سيؤدي إلى وصول UAF. CPU 0 | CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/ | unregister_netdevice(tun->dev) //tun3 tun2 sys_getdents64() | iterate_dir() proc_readdir() | proc_readdir_de() snmp6_unregister_dev() | pde_get(de); proc_remove() read_unlock(&proc_subdir_lock); | remove_proc_subtree() write_lock(&proc_subdir_lock); | [time window] rb_erase(&root->subdir_node, &parent->subdir); | write_unlock(&proc_subdir_lock); read_lock(&proc_subdir_lock); | next = pde_subdir_next(de); pde_put(de); | de = next; //UAF | rbtree of dev_snmp6 | pde(tun3) / \ NULL pde(tun2)
المصادر
- CVE-2025-40271البحث
التحليل الفني لـ CVE-2025-40271، وهي ثغرة حرجة من نوع Use-After-Free في نظام ملفات /proc الخاص بنواة لينكس، بما في ذلك السبب الجذري وخطوات إعادة الإنتاج وتفاصيل التصحيح.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.