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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2026-98432 — كاشف Rust ومختبر محلي لـ CVE-2026-98432، وهو ثغرة use-after-free في IPv4 TCP على Linux في inet_opt/ireq_opt: تحليل ELF ساكن، وفحوصات إمكانية الوصول عبر kprobe، ومُشغِّل حالة تسابق. | Kitploit
أدوات/GitHubGitHub/alvaroguzmancode/cve-2026-98432
التحليل الثابتتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيالأوراق والأبحاثمختبرات وتدريب عملي
GitHubalvaroguzmancode/cve-2026-98432

cve-2026-98432

كاشف Rust ومختبر محلي لـ CVE-2026-98432، وهو ثغرة use-after-free في IPv4 TCP على Linux في inet_opt/ireq_opt: تحليل ELF ساكن، وفحوصات إمكانية الوصول عبر kprobe، ومُشغِّل حالة تسابق.

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-98432 — استخدام بعد تحرير (use-after-free) في IPv4 TCP (inet_opt / ireq_opt)

إثبات مفهوم (PoC) بحثي ومختبر محلي لثغرة استخدام بعد تحرير في نواة Linux يمكن الوصول إليها من مستمع IPv4 TCP عادي. هذا كاشف/مُطلِق للخطأ، وليس استغلالًا.

الحالة

  • مسار الشيفرة مصاب بالثغرة في البنية المُحلَّلة (7.0.0-38-generic): تُحرِّر inet_sock_destruct() وtcp_v4_reqsk_destructor() الخيارات باستخدام kfree() بدلًا من kfree_rcu().
  • مسار kfree قابل للوصول أثناء التشغيل (kprobes).
  • ثغرة UAF نفسها هي سباق عنيف ومتقطّع. رأينا حدثين مرشّحين لـ free -> use (via=reqsk) في تشغيل قديم واحد، ولم نتمكن من إعادة إنتاجهما بشكل موثوق.
  • لم يتم تنفيذ أي RCE، ولا تسريب KASLR، ولا بدائية كتابة (write primitive). مستودع tcp2kaslr المرجعي يتوقف أيضًا عند إطلاق الخطأ؛ المراحل اللاحقة غير منشورة.
  • يتطلب التأكيد القوي نواة مزوّدة بـ KASAN (أو KFENCE). على المضيف التجريبي، CONFIG_KASAN معطّل وأخذ عينات KFENCE معطّل.

المتجه الصحيح (من tcp2kaslr)

لا حاجة إلى MPTCP. المسار المُثبَت هو IPv4 TCP عادي:

  1. يرسل المهاجم SYN مع خيار IPv4 Record Route.
  2. تحفظ النواة الخيارات على مقبس الطلب (ireq_opt).
  3. يبني SYN المُعاد إرساله SYNACK ويقرأ تلك الخيارات.
  4. تكتمل المصافحة؛ ويستقبل المقبس الابن نفس المؤشر.
  5. يستدعي التطبيق accept() على الابن، ويضبط SO_LINGER(0) ويغلقه. فتُحرِّر inet_sock_destruct() الخيارات باستخدام kfree().
  6. لا يزال مسار SYNACK يقرأ الذاكرة المُحرَّرة.
  7. يجب أن يحدث القراءة/الكتابة المتزامنة على معالجين (CPU).

كان مُطلِقنا السابق خاطئًا من ناحيتين: لم يقبل الضحية/يغلق الابن أبدًا (free_sock=0)، وأرسلنا RST بدلًا من الاعتماد على إغلاق الخادم. تضيف الشيفرة الحالية الأجزاء الصحيحة:

  • listen --accept-close — accept + SO_LINGER(0) + close.
  • --sync — ACK + SYN مكرر بشكل متزامن، بدون RST، مع خيارات Record Route.

الإصلاح في المنبع هو بالضبط:

-    kfree(rcu_dereference_protected(inet->inet_opt, 1));
+    kfree_rcu(rcu_dereference_protected(inet->inet_opt, 1), rcu);

والتغيير نفسه في tcp_v4_reqsk_destructor().

المحتويات

المسارالوصف
rust-poc/إثبات المفهوم الأصلي بلغة Rust: تحليل ELF الساكن، وkprobes، وأوضاع التشغيل
lab/ضحية Alpine + PHP عبر loopback للاختبارات المحلية القديمة
scripts/أدوات مساعدة لإعادة الإنتاج محليًا، وأدوات مساعدة للتدقيق المصرّح به
docs/FINDINGS.mdما تم اختباره، وما تم تأكيده، وما لم يتم تأكيده
docs/EXPLOITATION-NOTES.mdالنطاق: إثارة الخلل فقط، دون تنفيذ تعليمات عن بُعد (RCE)
docs/evidence/عينات أدلة منقّحة

البدء السريع

cd rust-poc
cargo build --release

# static analysis (no root)
./target/release/cve-2026-98432 static

# runtime reachability (root, tracefs)
sudo ./target/release/cve-2026-98432 runtime

# correct local vector: accept+close server + --sync trigger
cd ..
PASSES=1 ./scripts/repro-sync.sh 8083

repro-sync.sh يشغّل الضحية --accept-close على 127.0.0.1:8083، ويشغّل محفّز المزامنة باستخدام sudo، ويطبع free_sock وuse_build وحكم UAF. التشغيل النظيف ليس دليلاً على السلامة: المعدل نحو 1e-7 لكل محاولة والأحداث تتجمّع.

إذا كان artifacts/ مفقودًا، فإن static/runtime يعودان إلى /boot؛ يمكن لـ scripts/cve-2026-98432.sh --static القديم توليد مخرجات النواة.

كيف تبدو النتيجة الإيجابية

مع KASAN، تُبلّغ النواة عن slab-use-after-free في inet_csk_route_req / ip_options_build مع مكدّس التحرير في inet_sock_destruct / inet_release. تصل أداة tcp2kaslr إلى ذلك في نحو 134 ألف محاولة مع KASAN؛ على نواة عادية لوحظ السباق نفسه مرتين فقط في نحو 48 مليون محاولة.

الاستخدام المسؤول

اختبر فقط النوى والمضيفين التي تملكها أو المصرّح لك صراحةً باختبارها. فالمحفّز سباق في النواة وقد يؤدي إلى تعطّل المضيف. استخدم جهازًا افتراضيًا قابلًا للتخلص منه مع لقطة (snapshot).

المراجع

  • offline-ant/tcp2kaslr — محفّز الخطأ، أدلة KASAN، التحليل: https://github.com/offline-ant/tcp2kaslr
  • التصحيح في المنبع: ipv4: free inet_opt and ireq_opt after an RCU grace period (Eric Dumazet)، kfree → kfree_rcu في net/ipv4/af_inet.c و net/ipv4/tcp_ipv4.c.

الترخيص

MIT. راجع LICENSE.

تنزيل الأداة