ثغرة أمنية قابلة للاستغلال عن بعد في حزمة بروتوكول TCP الخاصة بنواة النظام Linux

كشفت شركة Anthropic عن ثغرة أمنية خطيرة (CVE-2026-98432) في حزمة بروتوكول TCP الخاصة بنواة النظام. Linuxتسمح هذه الثغرة بتنفيذ التعليمات البرمجية عن بُعد عبر إرسال حزم بيانات مُصممة خصيصًا. وقد تم الإبلاغ عن ثغرة استغلال فعّالة، تُمكّن من تنفيذ التعليمات البرمجية على مستوى نواة النظام والحصول عن بُعد على صلاحيات الجذر. تُناسب هذه الثغرة مهاجمة الأنظمة التي تحتوي على عمليات خادم تقبل الاتصالات عبر مقابس الشبكة التي تدعم بروتوكول TCP متعدد المسارات (MPTCP). يُمكن تفعيل دعم MPTCP على أساس كل مقبس شبكة على حدة، وهو الإعداد الافتراضي في مكتبة Go القياسية، بدءًا من الإصدار 1.24 (فبراير 2025).

يمكن استخدام الثغرة المُجهزة مع أي تطبيق خادم مكتوب بلغة Go، بما في ذلك خادم Caddy HTTP، طالما أنه قادر على إرسال حزم بيانات الشبكة إلى منفذ الاستماع الذي يُنشئه. ولأن الثغرة موجودة مباشرةً في حزمة بروتوكول IPv4 وليست خاصة ببروتوكول MPTCP، فمن الممكن إنشاء ثغرات تعمل دون الاعتماد على MPTCP، ولكن لم يتم إثبات جدوى هذه الثغرات بعد. على سبيل المثال، يمكن استغلال الثغرة عند معالجة طلبات ترحيل المقابس، وهو أمر متاح في الإعدادات التي تحتوي على المعامل net.ipv4.tcp_migrate_req=1 أو عند استخدام برامج eBPF مع الخيار BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

تنشأ هذه الثغرة الأمنية نتيجةً لحالة تضارب تحدث أثناء المعالجة المتزامنة لطلبات SYN المُعاد إرسالها خلال إنشاء اتصال TCP. ولأن الدالة tcp_v4_syn_recv_sock() تُمرر المعاملات من بنية ireq->ireq_opt إلى المقبس الفرعي عبر مرجع بدلاً من نسخها، ففي بعض الحالات، قد يتم تحرير الذاكرة الخاصة ببنيتي inet_opt و ireq_opt اللتين تحتويان على معاملات المقبس، ولكن تظل خيارات المقبس المرتبطة بها قيد الاستخدام (استخدام بعد التحرير).

يتم استغلال الثغرة عن بُعد عبر إرسال سلسلة من طلبات الشبكة المتزامنة زمنيًا. ينجح هذا الاستغلال في أنظمة التشغيل التي تستخدم تقنية عشوائية العناوين (KASLR)، إلا أن الوصول إلى نافذة حالة التزامن المتنافس يستغرق وقتًا طويلًا ويتطلب عددًا كبيرًا من المحاولات. يُسهّل الاستغلال حقيقة أن تفويت نافذة حالة التزامن المتنافس لا يؤدي إلا إلى مصافحة، بدلًا من تعطل نظام التشغيل، مما يسمح بمحاولات غير محدودة. في النموذج الأولي للاستغلال، استغرق الهجوم ساعة تقريبًا - 48 دقيقة لتحديد تخطيط الذاكرة و5 دقائق أخرى لتنظيم تنفيذ التعليمات البرمجية.

لا توجد حلول بديلة متاحة حتى الآن تضمن إصلاح الثغرة الأمنية، وتثبيت تحديث لنواة النظام هو الخيار الموثوق الوحيد. وتظهر المشكلة بدءًا من نواة النظام. Linux تم إصلاح هذه الثغرة في الإصدار 4.4، وفي الإصدارات 5.10.272، و5.15.223، و6.1.190، و6.6.159، و6.12.113، و6.18.56، و7.2.10، و7.3. ويمكن الاطلاع على حالة إصلاحات الثغرات الأمنية في التوزيعات على هذه الصفحات: Debian, Ubuntu، SUSE/openSUSE، RHEL، Gentoo، Arch،
فيدورا.

تتضمن التوصيات لمواجهة أساليب الاستغلال المحددة التي لا تمنع الثغرة الأمنية بشكل عام تعطيل دعم MPTCP وتعيين معلمة sysctl الخاصة بالنواة net.ipv4.tcp_migrate_req إلى 0:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0

لتحديد ما إذا كانت هناك عمليات في النظام تستخدم المقابس مع
يمكنك استخدام الأوامر التالية في بروتوكول MPTCP:

عرض نقطة نهاية بروتوكول MPTCP
عرض حدود بروتوكول MPTCP

لتعطيل دعم بروتوكول MPTCP في برامج Go، استخدم الخيار "multipathtcp=0"، والذي يُمكن ضبطه بتعيين متغير البيئة "GODEBUG=multipathtcp=0". لتعطيل دعم MPTCP أثناء عملية البناء، أضف "godebug multipathtcp=0" إلى ملف go.mod. في كود تطبيقك، يُمكنك تعطيل MPTCP باستخدام الدالتين net.Dialer.SetMultipathTCP و net.ListenConfig.SetMultipathTCP.

بالإضافة إلى القضية التي تمت مناقشتها، أعلنت شركة أنثروبيك أيضًا عن سلسلة من الثغرات الأمنية التي يمكن استغلالها محليًا في النواة. Linuxثغرات أمنية في أنظمة OpenBSD وFreeBSD تسمح بالوصول إلى النظام بصلاحيات الجذر والهروب من الحاويات المعزولة؛ ثغرات أمنية في متصفحي Chrome وSafari تؤدي إلى تنفيذ التعليمات البرمجية على النظام عند فتح صفحات ويب مصممة خصيصًا؛ ثغرة أمنية في نواة النظام Windowsمما أدى إلى تعطل النظام؛ ثغرة أمنية في النظام الأساسي Android، مما يسمح لك بتجاوز قفل الشاشة والوصول إلى المعلومات الشخصية والصور دون فتح الجهاز (تم عرض الهجوم على هاتف ذكي من نوع Google Pixel 9).

الملحق:

  • في nginx، كانت إمكانية تمكين خيار IPPROTO_MPTCP لمقبس الشبكة المستمع موجودة منذ الإصدار 1.29.7، ولكنها لا تستخدم بشكل افتراضي.
  • في برنامج Lighttpd، يتوفر خيار تمكين بروتوكول MPTCP منذ الإصدار 1.4.76.
  • في Apache httpd، تمت إضافة تصحيحات لدعم MPTCP إلى فرع Apache httpd 2.5-HEAD في عام 2024.
  • في نظام systemd، تمت إضافة دعم تمكين MPTCP عند التنشيط عبر مقبس في الإصدار 257.
  • في خادم حركة مرور Apache، يتم دعم خيار تمكين MPTCP منذ الإصدار 9.2.4.
  • في HAProxy، بدءًا من الإصدار 3.1.0، يتوفر الخيار "mptcp{,4,6}@" ".
  • في Traefik، يتم تمكين تعيين علامة IPPROTO_MPTCP بشكل افتراضي منذ الإصدارات 2.11.26 و 3.4.2 و v3.5.0-rc1.
  • في نظام إدارة قواعد البيانات Valkey، بدءًا من الإصدار 9.0.0، يتوفر الخيار "--mptcp" والإعدادات "mptcp yes" و "repl-mptcp yes".

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster