مستغلة: 178
الأحدثCVE-2026-121599 — ثغرة فيضان المخزن المؤقت القائم على المكدس في إعدادات Multi-SSID لـ TOTOLINK A950RG عبر cstecgi.cgi وdelWiFiMultipleConfig
VulnFeed.org
AREN
7.8
CVE-2026-99239يتوفر تصحيح

Bluetooth: L2CAP: رفض __l2cap_chan_add إذا كانت القناة تحتوي بالفعل على اتصال

Linux Linuxقراءة 2 داقرأ بلغة

ترجمة آلية لم تُراجَع بعد. النص الإنجليزي هو المرجع في حال الاختلاف.

الملخص

في نواة Linux، تم حل الثغرة التالية: Bluetooth: L2CAP: رفض __l2cap_chan_add إذا كانت القناة تحتوي بالفعل على اتصال. قد يتم ربط l2cap_chan بـ l2cap_conn مرة واحدة على الأكثر. يُفترض هذا في عدة أماكن، مثل عملية تنظيف l2cap_chan_del. يوجد سباق من نوع TOCTOU يتم فيه انتهاك هذا الثابت: [Task 1] [Task 2] l2cap_chan_connect l2cap_sock_bind l2cap_chan_lock lock_sock l2cap_state_change if (sk->sk_state != BT_OPEN) chan->state = BT_CONNECT l2cap_sock_state_change_cb chan->state = BT_BOUND sk->sk_state = BT_BOUND lock_sock <------------------ release_sock sk->sk_state = BT_CONNECT. الدالة l2cap_sock_connect() لا تحقق من sk->sk_state، لذا وبما أن chan->state أصبح الآن BT_BOUND، فإن استدعاء connect() اللاحق ينتهي بـ __l2cap_chan_add ثانٍ. قم توثيق والتحقق من الثابت بوضوح في __l2cap_chan_add باستخدام WARN_ON_ONCE. موقع الاستدعاء الوحيد الذي يمكن الوصول إليه هو l2cap_chan_connect، لذا أضف فحصًا مسبقًا هناك لتجنب الاعتماد على chan->state. قراءة/كتابة chan->state غير محمية بشكل صحيح حاليًا، لذا يمكن أن تكون هناك مشاكل TOCTOUC أخرى. أضف l2cap_lock_chan في l2cap_sock_bind() لحماية كتابة chan->state.

المعالجة

المراجع

Esc