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

الملخص

بحسب VulDB • 15/08/2026

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

rxrpc: لا تنقل رسالة OOB التي تمت قراءتها باستخدام MSG_PEEK إلى قائمة الانتظار المعلقة (pending queue)

تقوم الدالة `rxrpc_recvmsg_oob()` بإزالة رسالة OOB المستلمة من قائمة `recvmsg_oobq`، وإذا كان الرد مطلوبًا، فإنها تنقلها إلى شجرة `pending_oobq`. ومع ذلك، فإن عملية الإزالة (`unlink`) من `recvmsg_aooq` فقط هي التي تكون محمية بـ `MSG_PEEK`؛ بينما تتم عملية النقل إلى `pending_oobq` دائمًا.

نتيجة لذلك، يؤدي قراءة تحدي (challenge) باستخدام `MSG_PEEK` إلى ترك حزمة الشبكة (skb) في `recvmsg_oobq` مع إضافتها أيضًا إلى `pending_oobq`. نظرًا لأن عقدة الشجرة الحمراء-السوداء (`rbnode`) الخاصة بـ `struct sk_buff` تشارك التخزين مع مؤشرات `next` و `prev`، فإن دالة `rb_insert_color()` تقوم بإعادة كتابة ارتباط القائمة (list linkage)، مما يجعل حزمة الشبكة (skb) التي تحمل مرجعًا واحدًا قابلة للوصول من كلا القائمتين في وقت واحد.

عند إغلاق المقبس (socket)، يتم تفريغ القائمتين بالتتابع. أثناء تفريغ `recvmsg_oobq`، يتبع الدالة `__skb_unlink()` مؤشرات `next` و `prev` التي قام `rbnode` بإعادة كتابتها وتكتب إلى عنوان خاطئ. بالإضافة إلى ذلك، نظرًا لأن حزمة الشبكة (skb) تحمل مرجعًا واحدًا ولكنها تُحرر من كل قائمة على حدة، فإن كلاً من حزمة الشبكة والمرجع الذي تحمله للاتصال يتم إطلاقهما مرتين. يؤدي هذا إلى تلف الذاكرة وإلى ثغرة استخدام بعد التحرير (use-after-free) ناتجة عن انخفاض عداد المرجع (underflow) الخاص بالاتصال.

بما أن `MSG_PEEK` لا تستهلك الرسالة من القائمة، فيجب إزالة ارتباطها فقط من `recvmsg_oobq` ثم نقلها إلى `pending_oobq` أو تحريرها عندما يتم استهلاك الرسالة فعليًا.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

15/08/2026

إفشاء

15/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-390398

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you need the next level of professionalism?

Upgrade your account now!