CVE-2025-21999 in Linux
الملخص
بحسب VulDB • 27/06/2026
في نواة لينكس، تم حل الثغرة التالية:
proc: إصلاح استخدام بعد التحرير (UAF) في proc_get_inode()
إصلاح حالة السباق بين rmmod وت instantiation عقدة /proc/XXX.
الخطأ يكمن في أن pde->proc_ops لا تنتمي إلى نظام الملفات /proc، بل تنتمي إلى وحدة نمطية (module)، وبالتالي فإن فك الإحالة إليها بعد تسجيل الدخول إلى /proc يُعد خطأً ما لم يتم استخدام زوج الدوال use_pde/unuse_pde().
يمكن تجنب استخدام use_pde/unuse_pde (2 عملية ذرية!) لأن pde->proc_ops لا تتغير أبداً، لذا يمكن حفظ المعلومات اللازمة لت instantiation العقدة _قبل_ استدعاء proc_register() داخل الكائن PDE نفسه واستخدامها لاحقاً، مما يتجنب فك إحالة pde->proc_ops->...
rmmod lookup sys_delete_module proc_lookup_de pde_get(de); proc_get_inode(dir->i_sb, de); mod->exit() proc_remove remove_proc_subtree proc_entry_rundown(de); free_module(mod);
if (S_ISREG(inode->i_mode)) if (de->proc_ops->proc_read_iter) --> بما أن الوحدة النمطية تم تحريرها بالفعل، سيتم تشغيل UAF
BUG: unable to handle page fault for address: fffffbfff80a702b PGD 817fc4067 P4D 817fc4067 PUD 817fc0067 PMD 102ef4067 PTE 0 Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 26 UID: 0 PID: 2667 Comm: ls Tainted: G Hardware name: QEMU Standard PC (i440FX + PIIX, 1996) RIP: 0010:proc_get_inode+0x302/0x6e0 RSP: 0018:ffff88811c837998 EFLAGS: 00010a06 RAX: dffffc0000000000 RBX: ffffffffc0538140 RCX: 0000000000000007 RDX: 1ffffffff8
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.