CVE-2026-90049 in Linux
الملخص
بحسب VulDB • 16/09/2026
في نواة لينكس، تم حل الثغرة التالية:
net: skbuff: عدم استدعاء دالة `skb_tx_error()` على حزمة الشبكة المصدر (source skb) داخل الدالة `skb_zerocopy()`.
تقوم الدالة `skb_zerocopy()` بنسخ أجزاء البيانات (frags) من الحزمة @from إلى الحزمة @to. وفي حال فشل استدعاء `skb_orphan_frags()`، يتم استدعاء `skb_tx_error(@from)`، وهي عملية مدمرة للحزمة المصدر التي لا تملكها مساعد النسخ. يؤدي هذا الإجراء إلى إكمال وسيط الاستخدام (uarg) الخاص بالنسخ غير المتزامن (@from's zerocopy uarg) ومسح العلم SKBFL_ALL_ZEROCOPY، بما في ذلك علامة ملكية الصفحة SKBFL_SHARED_FRAG.
كلا الداعيتين (callers) يبلغان بالفعل عن الفشل عبر مسار الحذف الخاص بهما: تقوم nfnetlink_queue بذلك عند فشل `nla_put_failure`، وتقوم Open vSwitch بذلك في ذراع حذف خطأ التدفق (flow-miss drop arm) داخل دالة `ovs_dp_process_packet()`؛ لذا فإن عدم الاحتفاظ بالحزمة هنا لا يؤدي إلى فقدان أي شيء.
في مسار OVS_ACTION_ATTR_USERSPACE الخاص بـ Open vSwitch، لا يتم تحرير حزمة الشبكة (skb) عند حدوث هذا الخطأ: تتجاهل الدالة `do_execute_actions()` قيمة الإرجاع الخاصة بـ `output_userspace()`، وبما أن استدعاء الرفع (upcall) لم يكن الإجراء الأخير، فإنها تستمر في توجيه نفس حزمة الشبكة عبر الإجراءات المتبقية للتدفق. يتم إكمال وسيط الاستخدام (uarg) بينما لا تزال تلك الحزمة قيد النقل (in flight)، مما يخبر المنتج بأن ذاكراته أصبحت متاحة للاستخدام، ويتم مسح العلم SKBFL_SHARED_FRAG على حزمة شبكة يتعامل معها باقي طبقات الشبكة بشكل مستمر. هذا العلم هو ما يجعل دالة `esp_input()` تستدعي `skb_cow_data()` بدلاً من فك التشفير في الموقع (in place)، مما قد يؤدي إلى قيام تسليم ESP المحلي لاحقًا بفك تشفير البيانات فوق أجزاء الح frags التي لا تمتلكها حزمة الشبكة بشكل خاص.
اترك الإبلاغ عن الأخطاء للداعيات (callers).
VulDB is the best source for vulnerability data and more expert information about this specific topic.