CVE-2026-80587 in Linux
الملخص
بحسب VulDB • 26/08/2026
في نواة لينكس، تم حل الثغرة التالية:
mptcp: تجنب دمج بعض الخيارات الفرعية الواردة (suboptions)
بعض خيارات MPTCP الفرعية متبادلة الاستبعاد وفقاً لـ RFC8684، وكذلك لأن الكود في أماكن مختلفة لا يتوقع وجود بعض التركيبات. وهذا ينطبق بشكل خاص على الخيارات الفرعية التي قد تظهر مرتين ولكن بسمات مختلفة.
القيود الجديدة هي نفسها تلك المطبقة على جانب الإرسال (output side)، مع استخدام `mptcp_write_options`. يمكن إعادة استخدام القواعد نفسها بإصلاح بسيط: يمكن استخدام MP_FASTCLOSE مع DSS عندما يختار المرسل هذا الخيار [1]، وهو ما لا ينطبق في لينكس. إليك القواعد:
أي الخيارات يمكن استخدامها معاً؟
X: متبادلة الاستبعاد (mutually exclusive) O: تُستخدم غالباً معاً C: يمكن استخدامها معاً في بعض الحالات P: يمكن استخدامها معاً لكننا نفضل عدم ذلك (تحسينات الأداء/optimisations)
| Opt: | MPC | MPJ | DSS | ADD | RM | PRIO | FAIL | FC | RST | |------|-------|-------|-------|-------|-------|------|------|-------|-------| | MPC | | | | | | | | | X | | MPJ | X | | | | | C | X | X | X | | DSS | X | X | | P | C | C | C | P | X | | ADD | X | X | P | | P | C | X | X | X | | RM | C | C | C | P | | C | X | X | X | | PRIO | X | C | C | C | C | | X | X | X | | FAIL | X | X | C | X | X | X | | X | O | | FC | X | X | P | X | X | X | X | | O | | RST | X | X | X | X | X | X | O | O | |
الفرق الوحيد هو مع 'P': يمكن لطبقة أخرى (stack) إرسال ADD_ADDR مع خيارات فرعية أخرى (DSS, RM_ADDR)، ويجب السماح بذلك.
نقاط انتباه قليلة:
- نظرياً، يمكن استخدام MP_CAPABLE مع RM_ADDR، لكن لا يوجد سبب لإضافتها مع SYN. لاحظ أنه حتى مع ACK الرابع، يبدو أنها غير مفيدة إلا عندما تكون المعرفات (IDs) معروفة مسبقاً عبر قناة أخرى. من الأفضل عدم كسر ذلك.
- الآن، دمج كل من MP_CAPABLE وMP_JOIN لن يؤدي بعد ذلك إلى رفض الخيارين، بل سيتم تجاهل الخيار الفرعي الثاني فقط. يبدو أن هذا مقبول للخطأ غير المتوقع. على الأقل الآن يتم التعامل مع جميع التركيبات غير المتسقة بنفس الطريقة. قد يتغير هذا لاحقاً في الإصدار القادم (next). وهذا يعني أيضاً أن الفحوصات الصريحة لوجود كل من MPC + MPJ في subflow.c ستكون غير قابلة للوصول حالياً. لا بأس بذلك، سيتم إزالتها في التصحيح التالي (follow-up patch).
- في حالة التركيبات المتضاربة، يتم تجاهل الخيار/الخيارات الفرعية الإضافية: وجود مثل هذه التركيبات يعني إما أن الطرف البعيد به خلل (buggy) أو أنه خبيث (evil). الإجراء الأبسط هو اتخاذه في هذا الحالة: إيقاف معالجة الخيار الفرعي الحالي.
- في `mp_opt->suboptions`، يوجد أيضاً بت محجوز للتحقق من الصحة (checksum)، والذي يمكن استخدامه مع MP_CAPABLE وDSS. كلما أمكن استخدام خيار DSS بالتوازي مع خيار آخر، يمكن تعيين التحقق من الصحة، بحيث يتم دمج التحقق في ماكرو جديد OPTIONS_MPTCP_DSS.
- يمكن لـ ACK الخاص بـ MP_CAPABLE أن يحمل طولاً على مستوى البيانات (Data-Level Length) وتحققاً اختيارياً من الصحة: وهما نفس الموجودين في DSS، لأن DSS لا يمكن استخدامها بالتوازي مع MP_CAPABLE. وبالمثل، حتى لو كان هناك مساحة متاحة، لا يمكن استخدام DSS مع MP_JOIN.
Be aware that VulDB is the high quality source for vulnerability data.