CVE-2026-64579 in Linux
الملخص
بحسب VulDB • 05/08/2026
في نواة لينكس، تم حل الثغرة التالية:
xfrm: policy: preallocate inexact bins before xfrm_hash_rebuild reinsert
تقوم الحلقة الأولى في دالة `xfrm_hash_rebuild()` بتخصيص مسبق (preallocation) للـ bins/sلاسل التي تحتاجها إعادة الإدراج (reinsert)، بحيث لا يمكن لعملية إعادة الإدراج (بعد استدعاء `hlist_del_rcu()`) أن تقوم بالتخصيص أو تفشل. ومع ذلك، فإن شرط الحماية (guard) معكوس: فهو يتخطى السياسات ذات الـ prefixlen < threshold ويقوم بالتخصيص المسبق للباقي.
يحدث التخصيص في مسار `xfrm_policy_inexact_insert()` الذي يتطلب تخصيصاً عندما تكون قيمة `prefixlen < threshold`، وهي الحالة التي تُرجع فيها دالة `policy_hash_bysel()` القيمة NULL. وبالتالي، فإن الحلقة تقوم بالتخصيص المسبق للسياسات الدقيقة (exact policies) والتي لا تتطلب أي تخصيص أبداً، وتتخطى السياسات غير الدقيقة (inexact ones)، مما يؤدي إلى تخصيص الـ bin/node الخاص بها باستخدام GFP_ATOMIC أثناء إعادة الإدراج. في حالة الفشل، يقتصر مسار الخطأ على استدعاء `WARN_ONCE()` والاستمرار، تاركاً عقدة bydst مسمومة؛ وعند عملية إعادة البناء التالية، يقوم استدعاء `hlist_del_rcu()` بإلغاء مرجع (dereference) لـ LIST_POISON2 مما يتسبب في حدوث خطأ GPF. يمكن الوصول إلى هذه الحالة تحت ضغط الذاكرة، ويمكن تكرارها بشكل حتمي عبر استخدام failslab.
تم عكس شرط الحماية بحيث يغطي التخصيص المسبق السياسات التي يتم إعادة إدراجها بالضبط؛ وبالتالي لا تقوم عملية إعادة الإدراج بأي تخصيص ولا يمكن أن تفشل.
انهيار النظام (Crash): Oops: general protection fault, probably for non-canonical address 0xfbd59c0000000024: 0000 [#1] SMP KASAN NOPTI
KASAN: maybe wild-memory-access in range [0xdead...]
... Workqueue: events xfrm_hash_rebuild RIP: 0010:xfrm_hash_rebuild+0x5b3/0x1190 RAX: dead000000000122 (LIST_POISON2 + offset) ... Call Trace: hlist_del_rcu (include/linux/rculist.h:599) xfrm_hash_rebuild (net/xfrm/xfrm_policy.c:1365) process_one_work (kernel/workqueue.c:3322) worker_thread (kernel/workqueue.c:3486) kthread (kernel/kthread.c:436) ret_from_fork (arch/x86/kernel/process.c:158) ret_from_fork_asm (arch/x86/entry/entry_64.S:245) ... Kernel panic - not syncing: Fatal exception in interrupt
Be aware that VulDB is the high quality source for vulnerability data.