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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-98432 — مجموعة قواعد nftables ووحدة systemd تُسقط حزم IPv4 TCP التي تحمل خيارات IP للتخفيف من ثغرة use-after-free في نواة Linux المسماة CVE-2026-98432 إلى حين صدور نواة مُرقّعة. | Kitploit
أدوات/GitHubGitHub/illuscapital/cve-2026-98432
أدوات دفاعيةتحليل الثغرات الأمنيةتدقيق التكوينأمن الشبكاتسوء التكوينالاستجابة للحوادث
GitHubilluscapital/cve-2026-98432

CVE-2026-98432

مجموعة قواعد nftables ووحدة systemd تُسقط حزم IPv4 TCP التي تحمل خيارات IP للتخفيف من ثغرة use-after-free في نواة Linux المسماة CVE-2026-98432 إلى حين صدور نواة مُرقّعة.

عرض المستودع
3منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

تخفيف CVE-2026-98432: إسقاط حزم TCP عبر IPv4 التي تحمل خيارات IP

تخفيف مؤقت بجدار حماية لـ CVE-2026-98432 على Ubuntu 24.04 (noble)، للمضيفين الذين يعرّضون مستمع TCP عامًا (مثل عقدة Geth على المنفذ 30303) بينما لا تتوفر نواة مُصلَّحة بعد.

الخلفية

CVE-2026-98432 هو ثغرة use-after-free في شيفرة مصافحة IPv4 TCP في نواة Linux. عندما يحمل SYN الوارد خيارات IPv4 IP، تُسلَّم هذه الخيارات إلى مقبس الابن الجديد دون نسخها؛ وعندها يمكن لـ SYN مُعاد إرساله ويُعالَج في الوقت نفسه على وحدة معالجة مركزية أخرى أن يقرأها بعد تحريرها. يوجد مُحفِّز ثانٍ عبر ترحيل مقبس الطلب (net.ipv4.tcp_migrate_req=1 أو برنامج BPF_SK_REUSEPORT_SELECT_OR_MIGRATE).

تُصنِّفها Ubuntu بأولوية عالية (CVSS 3: 9.8). وقت كتابة هذا النص، لا يزال إصلاح نواة linux لـ noble قيد التنفيذ.

مستمعات MPTCP ليست حالة منفصلة. تفتح ثنائيات Go 1.24+ (بما في ذلك Geth الحديثة) المستمعات كـ MPTCP افتراضيًا، لذا يعرضها ss كـ mptcp. تمر التدفقات الفرعية لـ MPTCP عبر مسار SYN نفسه الخاص بـ IPv4 TCP، لذا فهي معرَّضة تمامًا مثل TCP العادي. تعطيل MPTCP (GODEBUG=multipathtcp=0) لا يخفف من هذا.

ما الذي يفعله هذا

قاعدة nftables واحدة، في جدول خاص بها، تُسقط أي حزمة TCP عبر IPv4 لا يساوي طول ترويستها 5 (أي أي شيء يحمل خيارات IP) قبل أن تراها حزمة TCP في النواة:

ip protocol tcp ip hdrlength != 5 counter drop
  • لا يستخدم مرور TCP الشرعي عبر الإنترنت خيارات IP تقريبًا أبدًا، لذا فإن الاتصالات العادية (بما في ذلك اقتران Geth) لا تتأثر.
  • القاعدة مقصورة على TCP عن قصد. نسخة أوسع سابقة (ip hdrlength != 5) كانت تُسقط أيضًا استعلامات عضوية IGMP، التي تحمل خيار Router Alert، ويمكن أن تُعطّل بهدوء البث المتعدد في الشبكة المحلية (mDNS/Avahi، والبث إلى الأجهزة).
  • توجد في جدول منفصل (inet cvefix)، لذا تتعايش مع ufw ولا تتأثر بإعادة تحميل ufw.

الملفات

الملفيُثبَّت فيالغرض
nftables-cve-2026-98432.nft/etc/nftables-cve-2026-98432.nftمجموعة القواعد (خاملة الأثر؛ آمنة لإعادة التشغيل)
cve-2026-98432.service/etc/systemd/system/cve-2026-98432.serviceوحدة oneshot تُحمّل مجموعة القواعد عند الإقلاع

لا تضع هذه القاعدة في /etc/nftables.conf. يبدأ ذلك الملف بـ flush ruleset، مما قد يمحو قواعد ufw إذا عمل nftables.service.

التثبيت

git clone <this-repo> && cd <this-repo>

sudo install -m 0644 nftables-cve-2026-98432.nft /etc/nftables-cve-2026-98432.nft
sudo install -m 0644 cve-2026-98432.service /etc/systemd/system/cve-2026-98432.service

sudo systemctl daemon-reload
sudo systemctl enable --now cve-2026-98432.service

sudo nft list table inet cvefix

أيضًا تأكد من أن محفّز الترحيل متوقف (الافتراضي):

sysctl net.ipv4.tcp_migrate_req    # expect: 0

الاختبار

ثبّت nping. على Ubuntu يأتي ضمن حزمة nmap؛ لا توجد حزمة nping منفصلة:

sudo apt install nmap

1. اختبار التحكم

أعد تحميل مجموعة القواعد أولاً لإعادة تعيين العداد إلى 0، ثم أرسل حزمة SYN عادية (بدون خيارات IP) عبر loopback:

sudo nft -f /etc/nftables-cve-2026-98432.nft      # reload; resets the counter to 0
sudo nping --tcp -p 30303 --flags syn -c 3 127.0.0.1
sudo nft list table inet cvefix

المتوقع: ردود SA (SYN-ACK)، مما يُظهر أن المستمع لا يزال قابلاً للوصول، ويبقى العداد عند packets 0 bytes 0. إذا لم تحصل على أي ردود، فقد يفشل nping في الالتقاط على واجهة loopback؛ في هذه الحالة، نفّذ هذا الاختبار والاختبار التالي ضد عنوان IP الخاص بشبكة المضيف المحلية (LAN) بدلاً من 127.0.0.1.

2. فحص خيارات loopback

أرسل نفس حزمة SYN، هذه المرة مع خيار IP (Record Route). تمرّ حركة loopback عبر خطاف prerouting، لذا فإن هذا يختبر القاعدة دون أي وسيط:

sudo nping --tcp -p 30303 --flags syn --ip-options R -c 3 127.0.0.1
sudo nft list table inet cvefix

المتوقع: لا يتلقى nping أي ردود (Lost: 3 (100.00%))، ويقرأ العداد بالضبط:

ip protocol tcp ip hdrlength != 5 counter packets 3 bytes 240 drop

(3 فحوص × 80 بايت.)

3. اختبار الجهاز البعيد

لا تختبر الاختبارات البعيدة القاعدة إلا إذا وصل الفحص فعليًا إلى المضيف. على جهاز آخر على نفس الشبكة المحلية (LAN)، استهدف عنوان LAN الخاص بالمضيف:

sudo nping --tcp -p 30303 --flags syn --ip-options R -c 3 <host-lan-ip>

ثم تحقق من العدّاد على المضيف المحمي:

sudo nft list table inet cvefix

المتوقع: لا توجد ردود، ويزداد العدّاد بمقدار 3 (إلى packets 6 bytes 480 إذا نفّذت الخطوة 2 أولاً).

فحص عنوان IP العام من الخارج غالباً ما يكون غير حاسم. فالعديد من أجهزة التوجيه وأجهزة مزوّد خدمة الإنترنت ترفض حزم خيارات IP بنفسها. ومن العلامات النموذجية رد RA (إعادة تعيين) بقيمة TTL عالية مثل ttl=250، وهو ما يشير إلى جهاز بقيمة TTL أولية قدرها 255 بدلاً من مضيف Linux (قيمة TTL الأولية 64). فالفحص لا يصل إلى المضيف أبداً، وبالتالي لا يتحرك العدّاد. توضّح الخطوة 4 كيفية التمييز.

4. فحوصات tcpdump

نفّذ هذه على المضيف المحمي.

تأكّد من وصول الفحوصات البعيدة. ابدأ هذا، ثم كرّر فحص الخطوة 3 من الجهاز الآخر:

sudo tcpdump -ni any 'tcp port 30303 and (ip[0] & 0x0f) > 5'
tcpdump على المضيفعدّاد nftرد npingالمعنى
يُظهر حزمًايزدادلا شيءالتخفيف يعمل
يُظهر حزمًادون تغييرSAالقاعدة غير نشطة؛ تحقق من nft list table inet cvefix
لا شيءدون تغييرلا شيء أو RAتوقّف الفحص في المنبع؛ اختبر من الشبكة المحلية أو من loopback

تأكّد من عدم التقاط أي شيء آخر. اترك العدّاد دون مساس لعدة دقائق؛ ينبغي أن يبقى عند عدد اختبارك. لرؤية حركة المرور الحاملة لخيارات غير TCP وهي تصل (والتي تسمح بها هذه القاعدة عمدًا):

sudo tcpdump -ni any '(ip[0] & 0x0f) > 5 and not tcp'

استعلامات IGMP من موجّه LAN (مثل igmp query v3 إلى 224.0.0.1) طبيعية ويجب ألا تزيد العدّاد.

بعد إعادة التشغيل

systemctl is-enabled cve-2026-98432.service    # expect: enabled
sudo nft list table inet cvefix                # table present
sysctl net.ipv4.tcp_migrate_req                # expect: 0

الحصول على الإصلاح الحقيقي

هذا حل مؤقت. تحقق بشكل دوري من النواة المُرقّعة:

uname -r
sudo pro fix CVE-2026-98432

عندما يتوفر إصلاح:

sudo apt update && sudo apt full-upgrade
sudo reboot

قد يتجنب Livepatch (عبر اشتراك Ubuntu Pro شخصي مجاني؛ pro status، canonical-livepatch status) إعادة التشغيل، لكن لا يوجد ضمان بأن يصدر livepatch لهذه الثغرة CVE.

الإزالة

بمجرد تشغيل نواة مُصحّحة (الإبقاء عليها غير ضار أيضًا):

sudo systemctl disable --now cve-2026-98432.service
sudo nft delete table inet cvefix
sudo rm /etc/systemd/system/cve-2026-98432.service /etc/nftables-cve-2026-98432.nft
sudo systemctl daemon-reload

اختياري: إغلاق المنفذ مؤقتًا

لتحقيق هامش أمان إضافي حتى يتم الترقيع، يمكن إغلاق المنفذ الوارد 30303 بالكامل (يواصل Geth المزامنة عبر الأقران الصادرين، مع عدد أقل من الأقران):

sudo ufw deny 30303/tcp
# later:
sudo ufw delete deny 30303/tcp
تنزيل الأداة