Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-98432-mitigation-iptables — سكربتات Shell تتحقق من مضيفات Linux بحثًا عن CVE-2026-98432 وتطبّق قاعدة iptables u32 مؤقتة تُسقط حزم IPv4 TCP التي تحتوي على خيارات IP، مع وحدة systemd واختبار ذاتي وتراجع. | Kitploit
أدوات/GitHubGitHub/schnied/cve-2026-98432-mitigation-iptables
أدوات دفاعيةتحليل الثغرات الأمنيةالبرمجة النصية والأتمتةتدقيق التكوينأمن الشبكاتسوء التكوينالاستجابة للحوادث
GitHubschnied/cve-2026-98432-mitigation-iptables

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →

cve-2026-98432-mitigation-iptables

سكربتات Shell تتحقق من مضيفات Linux بحثًا عن CVE-2026-98432 وتطبّق قاعدة iptables u32 مؤقتة تُسقط حزم IPv4 TCP التي تحتوي على خيارات IP، مع وحدة systemd واختبار ذاتي وتراجع.

عرض المستودع
1منذ 2 أياملم تتم المراجعة بعد
مشاركة

Deutsch

تخفيف مؤقت لـ CVE-2026-98432، نسخة iptables

يحتوي هذا المستودع على ثلاثة نصوص برمجية تفحص مضيف Linux بحثًا عن CVE-2026-98432، وحيث لا تتوفر نواة مُصلَّحة، تُسقِط حزم IPv4 TCP التي تحمل خيارات IP بقاعدة iptables واحدة. وهو النظير بـ iptables لـ typhoon1217/cve-2026-98432-mitigation، الذي يفعل الشيء نفسه باستخدام nftables. إنه تخفيف مؤقت، وليس إصلاحًا. لم يُختبر ضد استغلال حقيقي (لا يوجد PoC عام)، ولا يتبنّاه أي مورّد. المؤلف مسؤول فردي، وليس مورّدًا.

لمن هذا

هذا مخصص للمضيفين الذين لا يمكنهم الحصول على نواة مُصلَّحة ولا يمكنهم تشغيل نسخة nftables:

  • إصدارات Debian القديمة التي لم تعد تتلقى تحديثات النواة: Debian 9 (stretch، 4.9)، Debian 10 (buster، 4.19)، Debian 11 (bullseye، 5.10). لم يعد أي منها مُدرجًا في متتبع أمان Debian لهذه الثغرة CVE.
  • مضيفو Ubuntu LTS الذين ينتظرون نواة المورّد. بالنسبة لـ 22.04، أُعلن عن الإصلاح لـ 5.15.0-203، وبالنسبة لـ 24.04 لـ 6.8.0-149. إلى أن يتم إقلاع تلك النواة، يسدّ التخفيف الفجوة.
  • المضيفون الذين لديهم iptables لكن بدون nft، أو لديهم nft قديم جدًا لـ ip hdrlength.
  • المضيفون الذين ينبغي أن تُطبَّق عليهم طريقة واحدة بشكل موحّد عبر الأنظمة القديمة والجديدة، بحيث يبدو التطبيق والفحص والتراجع متطابقة في كل مكان.

وهو ليس مخصصًا لمضيفي Proxmox VE، الذين لديهم نواتهم المُصلَّحة الخاصة (7.0.14-25-pve وما بعده) وحركة مرور جسرية تحتاج إلى قاعدة الجسر من مستودع nftables. وهو ليس مخصصًا للمضيفين الذين يستخدمون SELinux أو Smack NetLabel CIPSO labeling، والذين يمكنهم الوصول إلى الشيفرة المعرّضة للخطر دون خيارات IP. وهو ليس مخصصًا للأنوية الأقدم من 4.4، التي لا تحتوي على الخطأ.

إذا كانت توزيعتك توفّر نواة مُصلَّحة، فثبّتها، وأعد التشغيل، وشغّل cve-98432-revert-iptables.sh إذا كنت قد طبّقت هذا.

كيف يعمل

CVE-2026-98432 هو حالة تسابق (race) في إعداد اتصال IPv4 TCP. تحتفظ النواة بخيارات IP الخاصة بـ SYN الوارد في ireq_opt، وفي التوقيت المناسب تُحرّر إحدى وحدات المعالجة (CPU) ذلك الكائن بينما لا تزال أخرى تقرأه. في الشيفرة الرئيسية (mainline)، لا يُضبط ireq_opt إلا عندما يحمل SYN خيارات ترويسة IPv4، أي أن ترويسة IP أطول من 20 بايت (IHL > 5)، أو عبر CIPSO labeling. وبدون خيارات لا يوجد شيء لتحريره أو قراءته. لذا تُسقِط القاعدة كل حزمة IPv4 TCP تكون ترويستها أطول من 20 بايت:

iptables -t raw -I PREROUTING -p tcp -m u32 --u32 "0>>24&0xF=6:15" -j DROP

مطابقة u32 تقرأ أول أربعة بايتات من ترويسة IP، وتُزيح البايت الأول للأسفل وتُبقي النيبل المنخفض منه، وهو حقل IHL بوحدات الكلمات ذات 32 بت. تطابق 6:15 كل قيمة أكبر من 5. يعمل خطاف PREROUTING في جدول raw قبل أن تُحلّل النواة الخيارات، وقبل conntrack. تمرّ حركة loopback عبر الخطاف نفسه، وهو ما يعتمد عليه الاختبار الذاتي.

في نطاق شبكة (network namespace) مع مستمع loopback، نجح اتصال SYN عادي بينما انتهت مهلة SYN يحمل خيار Record Route، مع وصول عدّاد القاعدة إلى حزمتين (SYN وإعادة إرسال واحدة). وقد سلكت قاعدة nftables ‏ip hdrlength gt 5 السلوك نفسه. جرى اختبار كلٍّ من iptables-legacy وiptables-nft.

حركة TCP المشروعة التي تحمل خيارات IP نادرة. على تسعة مضيفات إنتاجية (mail وDNS وweb وXMPP) بقي العدّاد عند حزم الاختبار الذاتي طوال نافذة المراقبة.

هل ينطبق هذا عليك

  1. شغّل cve-98432-check.sh. فهو للقراءة فقط. انظر إلى status وkernel_upstream_base وkernel_changelog_cve. تحمل نوى المورّد الإصلاح تحت أرقام إصداراتها الخاصة، لذا عندما يذكر سجل تغييرات النواة قيد التشغيل اسم CVE، فإن ذلك يتقدّم على مقارنة الإصدارات.
  2. انظر إلى iptables_u32_probe. يجب أن يقول ok. يشغّل الفحص الأمر iptables -C، الذي يسأل فقط عمّا إذا كانت القاعدة موجودة وبالتالي لا يضيف شيئًا؛ وتخبر الإجابة عمّا إذا كانت مطابقة u32 وجدول raw قابلين للاستخدام على هذه النواة.
  3. انظر إلى selftest_ipopt. تعني CONNECTED أن SYN الذي يحمل خيارات IP يمرّ حاليًا. وتعني FAIL أنه يُسقَط بالفعل.
  4. المتطلبات: صلاحيات root، وbash، وiptables مع xt_u32 وiptable_raw، وsystemd. وPython 2 أو 3 للاختبار الذاتي. المضيفات التي لا تعمل بـ systemd غير مشمولة.

جُرّب على Debian 9 (iptables 1.6.0، legacy)، وDebian 10 و11 (iptables 1.8.x، خلفية nf_tables) وUbuntu 22.04 (iptables 1.8.7). وجُرّب مسار الإقلاع على Debian 10.

التطبيق

تُرسَل السكربتات إلى المضيف عبر SSH على المدخل القياسي، لذا لا يلزم نسخ أي شيء أولًا.

  1. شغّل الفحص على المضيف التجريبي واقرأ المخرجات:
    ssh root@HOST 'bash -s' < cve-98432-check.sh
    
  2. طبّق على الطيار:
    ssh root@HOST 'bash -s' < cve-98432-apply-iptables.sh
    
    إنه عديم الأثر عند التكرار (idempotent). يثبّت /usr/local/sbin/cve-2026-98432-mitigation (start|stop|status)، ووحدة systemd من نوع oneshot باسم cve-2026-98432-mitigation.service تُحمّل القاعدة قبل network-pre.target، وفقط عندما تعرف النواة MPTCP، يثبّت /etc/sysctl.d/99-cve-2026-98432.conf مع net.mptcp.enabled = 0. يخرج قبل تغيير أي شيء إذا لم يكن المستخدم root، أو إذا كان iptables أو systemd مفقودًا، أو إذا فشل فحص u32.
  3. قارن الأسطر الأخيرة مع المرجع:
    host=... svc=active enabled=enabled mptcp=n/a
    -A PREROUTING -p tcp -m u32 --u32 "0x0>>0x18&0xf=0x6:0xf" -j DROP
    selftest_plain=CONNECTED
    selftest_ipopt=FAIL TimeoutError
    
    mptcp=0 على النوى 5.6 وما بعدها. تطبع إصدارات Python الأقدم FAIL timeout، وهي النتيجة نفسها.
  4. أعد تشغيل الطيار وتحقق من أن الوحدة قد بدأت قبل الشبكة ومن وجود القاعدة:
    ssh root@HOST 'systemctl is-active cve-2026-98432-mitigation; /usr/local/sbin/cve-2026-98432-mitigation status'
    
  5. انشره على البقية:
    while read -r h; do echo "##### $h"; ssh root@$h 'bash -s' < cve-98432-apply-iptables.sh; done < hosts.txt
    
  6. إذا كانت إحدى الخدمات تستمع عبر MPTCP، فأعد تشغيلها. يؤثر sysctl على المقابس الجديدة فقط.

التحقق

شغّل الفحص مرة أخرى على كل مضيف تم تخفيفه وانظر إلى حقلين:

الحقلالمتوقع
cve_serviceenabled/active
selftest_ipoptFAIL ... (تم إسقاط SYN الخاص بخيارات IP)

يستخدم الاختبار الذاتي واجهة loopback. تمر حركة المرور من الشبكة عبر نفس خطاف PREROUTING، لذا تنتقل النتيجة. إذا أردت التأكيد من الخارج، فإن check-blocked.py وverify-synack.sh من مستودع nftables يعملان دون تغيير ضد مضيف تم تخفيفه بهذه الطريقة.

لمراقبة العدادات:

while read -r h; do
  printf '%-28s ' "$h"
  ssh -n root@$h '/usr/local/sbin/cve-2026-98432-mitigation status' 2>&1 | awk '{print "pkts="$1, "bytes="$2}'
done < hosts.txt

كل اختبار ذاتي يضيف حزمتين. العداد الذي ينمو إلى ما يتجاوز ذلك يعني أن حركة مرور حقيقية مع خيارات IP تصل إلى المضيف؛ انظر إلى ذلك قبل أن تقرر أي شيء. الأمر -n مهم: فبدونه يقرأ ssh بقية قائمة المضيفين من الإدخال القياسي وتتوقف الحلقة بعد أول مضيف.

إذا تعطّل شيء

العَرَض هو اتصال TCP يتعلّق (تنتهي مهلته) بدلًا من أن يُرفض، مع عداد متزايد.

الأمرالتأثير
systemctl stop cve-2026-98432-mitigationإيقاف فوري، ويعود عند إعادة التشغيل
systemctl disable --now cve-2026-98432-mitigationإيقاف الآن وعبر عمليات إعادة التشغيل

التوافق المقاس على المضيفين المختبَرين: تقع القاعدة في جدول raw، الذي لا يمسّه fail2ban. تم فحص ufw في الشيفرة المصدرية: إذ إن flush_builtins فيه داخل ufw-init-functions يفرّغ filter وmangle وnat فقط، لذا يترك ufw reload وufw disable القاعدة في مكانها. أي سكربت جدار حماية خاص بك يشغّل iptables -t raw -F سيزيلها؛ أعد تشغيل سكربت التطبيق أو systemctl restart cve-2026-98432-mitigation بعد ذلك.

الإزالة بعد الترقيع

  1. أقلع نواة النظام المُصلَّحة وتأكد باستخدام uname -r، أو شغّل الفحص وابحث عن status=FIXED.
  2. شغّل أمر الإرجاع:
    ssh root@HOST 'bash -s' < cve-98432-revert-iptables.sh
    
    أضف --mptcp إذا كان MPTCP مُفعَّلًا من قبل وتريد إعادته.
  3. يجب أن يقرأ السطر الأخير remaining_u32_rules=0.

القيود

تنزيل الأداة