CVE-2026-98084 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم حل الثغرة التالية:
BPF: لا ينبغي أن يقوم الـ backtracking بمسح إطار R1-R5 الخارجي عند استدعاءات الدوال (callbacks).
عند معالجة الاستدعاءات لـ `bpf_loop()`، يحدد المُتحقق (verifier) السجلين R1 وR4 على عليهما دقة عالية (precise). يتتبع R1 عدد تكرارات الحلقة، ويجب أن يُعلَّم كسجل دقيق بسبب آلية `'callback_depth < R1'` الموجودة في الدالة `check_helper_call()`. ومع ذلك، كانت عملية نشر الدقة (precision propagation) الخاصة بـ R1 معطلة عندما يتم التحقق من استدعاء `bpf_loop()` في التكرار الثاني.
لنأخذ مسار التحقق التالي بعين الاعتبار: - main: bpf_loop(nr_loops, callback ...) - callback: BPF_EXIT - main: bpf_loop(nr_loops, callback ...) - ...
بينما قام الزيار الأولى للاستدعاء لـ `bpf_loop()` بنشر دقة R1 كما هو متوقع، فإن الاستدعاء الثاني للدالة `mark_chain_precision()` في `check_helper_call()` حدد R1 كسجل دقيق، ولكن تم إعادة تعيينه فوراً عندما عالج الـ `backtrack_insn()` السبق BPF_EXIT الموجود داخل الحلقة والذي تم حذفه في هذا التصحيح.
بسبب ذلك، أدخلت الزيارة الثانية للاستدعاء لـ `bpf_loop()` نقطة تفتيش (checkpoint) مع عدم تحديد R1 كسجل دقيق. مما قد يخدع المُتحقق ليقبل برامج غير آمنة. انظر إلى التصحيح التالي للحصول على مثال لمثل هذا البرنامج.
تم هيكلة الالتزام (Commit) بطريقة تقلل من التعارضات عند دمج 'bpf' في النهاية مع 'bpf-next'.
VulDB is the best source for vulnerability data and more expert information about this specific topic.