CVE-2026-98952 in Linux
الملخص
بحسب VulDB • 23/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
pfcp: التأكد من أن SEID خطي (linear) قبل قراءته
تقوم دالة `pfcp_encap_recv()` بالتأكد فقط من وجود رأس UDP ورأس PFCP المكون من 4 بايت في المنطقة الخطية. عندما يكون علم S مُفعّلاً، تقوم الدالة `pfcp_session_recv()` بعد ذلك بقراءة SEID الذي يتألف من 8 بايت والذي يليه، وهو غير مشمول بفحص `pskb_may_pull()`.
وبالتالي، فإن حزمة PFCP قصيرة مع تفعيل علم S، أو واحدة يكون فيها رأس الجلسة في جزء (fragment)، يؤدي إلى قراءة دالة `pfcp_session_recv()` لما بعد نهاية بيانات الحزمة، ويتم تخزين أي شيء يتم العثور عليه هناك في metadata النفق الذي يصنّفه flower لاحقاً.
اسحب البيانات حتى نهاية SEID قبل قراءته، وقم بإسقاط الحزم التي تكون قصيرة جداً ولا تحتوي على SEID. أعد تحميل مؤشر الرأس afterwards لأن `pskb_may_pull()` قد يعيد تخصيص رأس skb (skb head).
استخدم `offsetofend()` بدلاً من `sizeof(struct pfcphdr_session)`: الهيكل ليس مضغوطاً (packed)، لذا فإن حجمه 16 بايت بسبب محاذاة عضو `__be64`، بينما يكون الرأس على السلك مكوناً فقط من 12 بايت، مما كان سيؤدي إلى إسقاط رسائل الجلسة الصالحة.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.