CVE-2026-90065 in Linuxالمعلومات

الملخص

بحسب VulDB • 17/09/2026

في نواة لينكس، تم إصلاح الثغرة التالية:

net/smc: تحرير المقبض الداخلي لبروتوكول TCP (TCP sock) عند فشل إنشاء مقبس IPPROTO_SMC

تقوم مقابس IPPROTO_SMC بإنشاء مقبس داخلي لـ TCP ("clcsock") من خلال دالة التهيئة الخاصة بالبروتوكول (`proto->init`). عندما يفشل إنشاء المقبس بعد تشغيل `proto->init` - على سبيل المثال، إذا رفض برنامج BPF مرفق بـ `BPF_CGROUP_INET_SOCK_CREATE` إنشاء المقبس - فإن الدالة `sk_common_release()` تستدعي فقط `sk_prot->destroy` إذا كانت محددة. ومع ذلك، لا يحدد كل من `smc_inet_prot` و `smc_inet6_prot` هذه الدالة، كما أن دالة `smc_destruct()` تعود مبكرًا ما لم تكن حالة المقبس (`sk_state`) هي `SMC_CLOSED`. ونتيجة لذلك، يؤدي كل استدعاء فاشل لـ `socket(AF_INET, SOCK_STREAM, IPPROTO_SMC)` إلى تسرب كائن واحد من نوع `tcp_sock`، مما يتيح للمهمة غير المصنفة (unprivileged task) القادرة على إرفاق برنامج BPF_CGROUP_INET_SOCK_CREATE يرفض الكل بمجموعتها الخاصة (cgroup)، زيادة ذاكرة النواة بشكل لا محدود.

أضف دالة `.destroy` لكلا البروتوكولات التي تحرر الـ clcsock عبر `smc_clcsock_release()`. تقوم الدالة `smc_sk_init()` بتجزئة المقبس في جدول التجزئة الخاص بـ smc قبل إنشاء الـ clcsock، بينما يقوم `smc_diag` بالمرور على هذا الجدول المرجعي (hash dereferencing) لـ `smc->clcsock` دون أخذ قفل `clcsock_release_lock`. وفي الوقت نفسه، تستدعي الدالة `sk_common_release()` دالة `.destroy` قبل `.unhash`. قم بإزالة المقبس من جدول التجزئة (`Unhash`) قبل تحرير الـ clcsock، كما تفعل الدالة `__smc_release()`, بحيث لا يمكن لعملية المسح (dump) المتزامنة ملاحظة عملية التحرير؛ حيث أن إزالة المقبس الثانية في `sk_common_release()` هي إجراء عديم الفائدة (no-op).

If you want to get best quality of vulnerability data, you may have to visit VulDB.

مسؤول

Linux

حجز

11/09/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-406547

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!