
تخفيف مؤقت عبر nftables للثغرة CVE-2026-98432، مع تراجع تلقائي ودليل مسؤول باللغة الروسية. ليس تصحيحًا للنواة.
حماية مؤقتة لخوادم Linux: مرشّح IPv4 TCP ضيّق، والتحقق من الحالة، ونسخة احتياطية واسترجاع. يفصل التدقيق بين إصلاح النواة وعمل المرشّح.
Audit: работающее ядро → пакет → основание → UNKNOWN при нехватке данных
Protection: inet + bridge → строгая проверка → откат через 180 секунд
Validation: обычный TCP / IP options / UDP в отдельном namespace
Monitoring: проверка по таймеру → журнал ошибок, без изменения firewall
هذا ليس تصحيحًا للنواة ولا ضمانًا لإزالة جميع أشكال الاستغلال. يقوم السكربت بتثبيت مرشّح شبكي ضيّق لمسار CVE-2026-98432 المعروف الخاص بخيارات IPv4 TCP/IP. الإصلاح النهائي هو نواة تحتوي على تصحيح مؤكَّد لهذه CVE تحديدًا وتحميلها فيها.
تم التحقق من حداثة التوصيات في 1 نوفمبر 2026. قبل التطبيق تحقّق من الحالة الحديثة لدى مُصنّع توزيعتك.
في عرض Anthropic تم استخدام مستمع MPTCP. يُحذّر فريق أمان Go:
الخطأ نفسه يقع في شيفرة IPv4 TCP العامة في النواة، لذا فإن غياب مقابس MPTCP
لا يُثبت الأمان. GODEBUG=multipathtcp=0 — قيد إضافي
لمسار الهجوم المعروف، وليس بديلًا عن تصحيح النواة.
هذا السكربت لا يغيّر MPTCP، ولا يثبّت تحديثات، ولا يعيد تشغيل التطبيقات، ولا يعيد تشغيل الخادم. يعمل المرشّح أيضًا على المستمعين المفتوحين بالفعل.
جدولا nftables منفصلان:
inet cve_2026_98432_guard: حزم IPv4 TCP التي يزيد طول ترويسة IP فيها عن 20 بايت؛bridge cve_2026_98432_guard: حزم مماثلة على الجسور.تمرّ بقية حركة المرور إلى القواعد الموجودة. لا يوجد flush ruleset كامل،
ولا تُستبدل قواعد Docker/Kubernetes/SSH والخدمات الأخرى.
هذا تصفية لخيارات IPv4، وليس لخيارات TCP. لا تُحجب طوابع وقت TCP العادية، ولا تحجيم النافذة، ولا SACK، ولا اتصالات SSH/HTTPS القياسية بهذا الشرط. ستُسقَط أيضًا حركة TCP المشروعة التي تحمل خيارات IPv4: تحقّق من متطلبات شبكتك.
يلزم Linux وroot وnft وPython 3.8+ وBash وsystemd ودعم nftables لعائلتي inet/bridge في النواة.
لا يفعّل السكربت خدمة جدار الحماية الخاصة بالتوزيعة ولا يثبّت التبعيات.
يكشف فحص --check غياب الإمكانات المطلوبة قبل التطبيق.
مثال على تثبيت الأداة المفقودة، إذا كان ذلك متوافقًا مع سياسة الخادم:
# Debian / Ubuntu:
sudo apt-get install nftables python3
# RHEL / Rocky / AlmaLinux:
sudo dnf install nftables python3
OpenWrt وRouterOS وBSD وWindows وأجهزة NAS القديمة والحاويات بدون root/CAP_NET_ADMIN والأنظمة التي لا تعتمد على systemd لا يغطيها هذا المثبّت. تحتاج هذه الأنظمة إلى تعليمات منفصلة من الشركة المصنّعة. لا يمكن اعتبار السكربت ماسحًا شاملًا للثغرات. للحصول على الملف الشخصي اليدوي Alpine/WSL راجع التعليمات المنفصلة.
bash mitigate.sh --audit
sudo bash mitigate.sh --audit --json
التدقيق يقرأ البيانات الوصفية والإعدادات فقط. لا يفحص الشبكة، ولا يشغّل
استغلالاً، ولا ينزّل تحديثات، ولا يغيّر firewall. بدون root ستكون بعض النتائج
UNKNOWN. قد يحتوي التقرير على أسماء الواجهات وPID؛ قبل النشر
قم بإخفاء هويتها.
| حقل JSON | ماذا يعني |
|---|---|
patch.state | PATCHED أو VULNERABLE أو UNKNOWN للنواة العاملة |
enforcement.enforcement | ACTIVE_VERIFIED فقط عند التطابق التام لكلا الجدولين |
persistence.state | CONFIGURED — الوحدة مفعّلة؛ إعادة التشغيل الفعلية لم تُختبر بهذا |
coverage.state | PARTIAL_OR_UNKNOWN: namespaces/CNI/NetLabel تتطلب تحليلاً منفصلاً |
rollback_timer، monitor_timer | حالة التراجع التلقائي والمراقبة الاختيارية |
schema_version: 1. رمز الخروج 0 لدى --audit يعني أن جمع التقرير قد اكتمل،
وليس غياب الثغرة. تحقق من الحقول المستقلة وreason.
مطابقة التصحيح تقارن النواة العاملة بالحزمة الدقيقة. قواعد vendor-baselines
المدمجة تم التحقق منها في 01.11.2026 فقط لـ Debian 12/13: linux 6.1/6.12
و bookworm linux-6.12. وهي مبنية على
Debian tracker.
بالنسبة للفروع الأخرى وUbuntu وWSL والتوزيعات غير المتحقق منها تبقى النتيجة
UNKNOWN، ولا تُستنتج من رقم uname أو من مجرد
ذكر CVE في changelog. بالنسبة لـ vendor trackers المعروفة يحتوي التقرير على رابط.
هذا ثقة بالبيانات الوصفية للحزمة، وليس اعتماداً للـ binary؛
يتم فحص custom kernels وlivepatch بشكل منفصل.
التدقيق محدود بـ 32 netns مرئية: يعرض عدد مستمعي MPTCP، لكنه لا
يثبت تغطية namespaces. يبقى CIPSO بحالة UNKNOWN إذا لم تكن هناك بيانات
كافية؛ وغياب netlabelctl لا يثبت غياب labeling.
قم أولاً بتنزيل الكود وقراءته. لا تستخدم curl | sudo bash.
git clone https://github.com/ZombiePm/cve-2026-98432-mitigation.git
cd cve-2026-98432-mitigation
less mitigate.sh
sudo bash mitigate.sh --check
sudo bash mitigate.sh --apply
عند اكتشاف NetLabel/CIPSO أو سياسة MLS، يتوقف التطبيق قبل تغييرات التثبيت. بعد تحليل التوافق، تأكيد صريح للمخاطر:
sudo bash mitigate.sh --apply --accept-ipv4-options-risk
هذا العلم يقبل خطر تعطيل حركة المرور المشروعة التي تحتوي على خيارات IP، بدلاً من
توسيع الحماية. إذا لم يتم العثور على مؤشرات على وضع العلامات، فسيتم مع ذلك
الإشارة إلى التوافق بـ UNKNOWN.
بعد --apply يتم تفعيل التراجع التلقائي بعد 180 ثانية.
احتفظ بالطرفية الحالية. افتح اتصال SSH جديداً بالخادم وتحقق
من الخدمات الحرجة من الخارج: VPN، المواقع، واجهات API، البريد، التبادل العنقودي.
إذا كان كل شيء يعمل، فمن الاتصال الجديد:
cd cve-2026-98432-mitigation
sudo bash mitigate.sh --status
sudo bash mitigate.sh --confirm
--confirm يلغي مؤقت التراجع. بدونه ستُزال الحماية تلقائيًا.
بعد التأكيد، سيحمّل systemd الفلتر عند التمهيد التالي للخادم.
لا تُعد تشغيل الخادم قبل التأكيد أو التراجع اليدوي.
طبّق ذلك على عقدة واحدة في كل مرة. بالنسبة إلى Kubernetes والعناقيد، تأكد أولًا من استمرار الاتصال، ثم انتقل إلى العقدة التالية.
sudo bash mitigate.sh --status
sudo nft list table inet cve_2026_98432_guard
sudo nft list table bridge cve_2026_98432_guard
systemctl status cve-2026-98432-guard.service
journalctl -u cve-2026-98432-guard.service --no-pager
عداد packets 0 يعني عدم وجود حزم مطابقة، وليس غياب الحماية.
فحص البرامج التي تستخدم MPTCP بشكل منفصل:
sudo ss -Mlnp
لا تُضف -t إذا كنت تريد رؤية MPTCP فقط: فسيؤدي ذلك إلى إضافة مقابس TCP العادية
إلى النتائج. حتى الإخراج الفارغ من MPTCP لا يؤكد إزالة CVE.
بعد إعادة التشغيل وأي تغييرات/عمليات إعادة تحميل لجدار الحماية، أعد تنفيذ --status.
قد يقوم مسؤول آخر أو مدير جدار حماية بتنفيذ flush ruleset كامل
بحذف هذه الجداول. في هذه الحالة، تعامل أولاً مع
التكوين المُدير؛ لإعادة تحميل الفلتر المحفوظ:
sudo systemctl restart cve-2026-98432-guard.service
بعد التحقق من اتصال SSH جديد و --confirm:
sudo bash mitigate.sh --watch-enable
systemctl status cve-2026-98432-check.timer
journalctl -u cve-2026-98432-check.service --no-pager
sudo bash mitigate.sh --watch-disable
يقوم المؤقت بتنفيذ --status الصارم مرة كل 60 ثانية، وأول فحص بعد
التحميل يكون بعد دقيقتين. وهو لا يستعيد القواعد، ولا يغيّر sysctl،
ولا يرسل إشعارات خارجية. اربط وحدة failed بنظام المراقبة الخاص بك.
بين الفحوصات قد توجد فترة دون تصفية؛ هذه ليست حماية مستمرة.
يقوم --rollback بتعطيل هذا المؤقت أيضًا.
sudo bash mitigate.sh --rollback
يقوم الأمر بإيقاف المؤقت وتعطيل الوحدة وحذف جدولين خاصين به فقط. تبقى ملفات التكوين والنسخ الاحتياطية للتحقق. قبل تثبيت النواة المصححة، يعيد التراجع خطر الاستغلال.
عند الحاجة يدويًا:
sudo systemctl stop cve-2026-98432-rollback.timer
sudo systemctl disable --now cve-2026-98432-guard.service
sudo nft delete table inet cve_2026_98432_guard
sudo nft delete table bridge cve_2026_98432_guard