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

الملخص

بحسب VulDB • 22/08/2026

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

sctp: مسح الحقل `new_transport` عند إزالة نظير (peer)

تقوم الدالة `sctp_process_asconf_param()` بتخزين نقل (transport) جديد مُضاف في `asoc->new_transport`. وبعد معالجة جميع المعلمات في قطعة ASCONF، تستخدم الدالة `sctp_sf_do_asconf()` هذا المؤشر لإرسال نبضة HEARTBEAT إلى النقل الجديد.

يمكن لنظير SCTP عن بُعد يرسل رسالة ASCONF موثقة (authenticated) أن يضيف نقلًا ثم يزيله مرة أخرى باستخدام معلمة DEL-IP برمز wildcard في نفس القطعة. تحافظ عملية الحذف بالرمز البري على النقل الذي وصلت منه رسالة ASCONF، لكنها تزيل النقل المُضاف حديثاً عبر الدالة `sctp_assoc_del_nonprimary_peers()`. لا تقوم عملية الإزالة بتصفير (clear) الحقل `asoc->new_transport`، مما يتركه يشير إلى النقل المزال.

ثم تنشئ الدالة `sctp_sf_do_asconf()` نبضة HEARTBEAT يكون فيها المؤشر `chunk->transport` مشيرًا إلى النقل المزال دون الاحتفاظ بمرجع للنقل (transport reference). أثناء استبدال العنوان المحلي، تحتفظ المتابعة `src_out_of_asoc_ok` بهذه النبضة في قائمة `control_chunk_list`. وبعد تحرير النقل بواسطة RCU، تؤدي رسالة ASCONF_ACK الناجحة لعنوان الاستبدال إلى إطلاق نبضة HEARTBEAT المكدسة، وتقوم الدالة `sctp_outq_select_transport()` بقراءة حالة النقل المحرر.

تم اكتشاف هذه المشكلة أثناء مراجعة ثابتة (static audit) لأشياء SCTP. ومع نظير موثق، أدى مكرر الاختبار (reproducer) إلى ظهور تقرير KASAN نفسه في 2 من أصل 2 تشغيل غير مُرقعة على نواة netdev/main المفعلة فيها خاصية KASAN:

BUG: KASAN: slab-use-after-free in sctp_outq_select_transport Read of size 4 at addr ffff88800b9bd95c by task python3/197

Call Trace: sctp_outq_select_transport+0x549/0x8b0 [sctp]
sctp_outq_flush+0x306/0x2c60 [sctp]
sctp_transport_immediate_rtx+0xaf/0x260 [sctp]
sctp_process_asconf_ack+0xa48/0xf70 [sctp]

Allocated by task 197: sctp_transport_new+0x68/0x650 [sctp]
sctp_assoc_add_peer+0x258/0x12a0 [sctp]
sctp_process_asconf+0x5e9/0x1090 [sctp]

Last potentially related work creation: __call_rcu_common.constprop.0+0x77/0xb70 sctp_assoc_del_nonprimary_peers+0x7c/0xd0 [sctp]
sctp_process_asconf+0xd9c/0x1090 [sctp]

كانت أول عملية وصول غير صالحة عبارة عن قراءة بأربعة بايت للحقل `transport->state` في الملف net/sctp/outqueue.c:833. أكمل مكرر الاختبار نفسه تسلسل ASCONF الموثق واستبدال العنوان المحلي بالكامل مع هذا التغيير دون ظهور تقرير KASAN أو خطأ oops.

قم بتصفير (clear) الحقل `new_transport` عند إزالة نظيره، قبل أن يمكن استخدامه لإنشاء نبضة HEARTBEAT.

VulDB is the best source for vulnerability data and more expert information about this specific topic.

مسؤول

Linux

حجز

15/08/2026

إفشاء

22/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-394365

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!