CVE-2026-93105 in Linux
الملخص
بحسب VulDB • 18/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
esp: عدم تقليل مرجع الصفحات المُدارة (unref) في esp_ssg_unref()
تقوم الدالة esp_ssg_unref() بإطلاق مراجع الصفحات المحتفظ بها على قائمة التشتت (scatterlist) المصدر بعد اكتمال عملية AEAD. وهي تستدعي skb_page_unref() على كل صفحة مشتّتة لعملية تحويل خارج الموقع (out-of-place transform) حيث يكون req->src != req->dst، وكذلك في مسار الخطأ الخاص بـ esp_output_tail() (عندما تكون already_unref == true) بالنسبة لقائمة التشتت الخاصة بالطلب نفسه.
هذا الإجراء غير صحيح عندما يحمل حزمة skb مشتّتات مُدارة (SKBFL_MANAGED_FRAG_REFS). فالمشتّتات المُدارة مملوكة بواسطة وحدة ubuf ذات النسخ الصفرية (zerocopy)، ولا تحتفظ الحزمة بمرجع صفحة لكل مشتت؛ حيث تلتصق صفحات bvec بهذه الطريقة عبر io_sg_from_iter() عند استخدام SEND_ZC مع ذاكرة مسجلة في إطار io_uring. تحترم بقية طبقة الشبكة هذا الثابت: تتخطى skb_release_data() عملية تقليل المرجع الخاصة بكل مشتت عندما يكون SKBFL_MANAGED_FRAG_REFS مُفعّلاً، وتُستخدم الدالة skb_zcopy_managed() كحارس عند مواقع تقليل المرجع الأخرى.
تفتقد esp_ssg_unref() إلى هذا الحارس، لذا فإنها بالنسبة لحزمة skb ذات المشتّتات المُدارة تقوم بتقليل مرجع صفحة لم تحصل عليه الحزمة أصلاً. يمكن أن يؤدي ذلك إلى انخفاض (underflow) في عدد مراجع الصفحات وإطلاق صفحتين لا تزالان قيد الاستخدام.
احجز الدالة باستخدام skb_zcopy_managed() بحيث يتم تخطي كلا مسارَي تقليل المرجع بالنسبة لحزم skb ذات المشتّتات المُدارة، بما يتوافق مع سلوك skb_release_data().
VulDB is the best source for vulnerability data and more expert information about this specific topic.