
CVE-2026-27944 - Nginx UI: تنزيل النسخ الاحتياطية وفك تشفيرها بدون مصادقة
CVE-2026-27944 - تنزيل وفك تشفير النسخة الاحتياطية دون مصادقة في Nginx UI
https://img.shields.io/badge/python-3.6+-blue.svg
https://img.shields.io/badge/license-MIT-green
https://img.shields.io/badge/PoC-Exploit-red
استغلال إثبات المفهوم (PoC) لثغرة CVE‑2026‑27944، وهي ثغرة حرجة في Nginx UI ≤ 2.3.2 تسمح لأي مهاجم غير مصادَق بتنزيل وفك تشفير أرشيف النسخة الاحتياطية الكامل للخادم عبر نقطة النهاية /api/backup.
النسخة الاحتياطية مشفّرة باستخدام AES‑256، لكن مفتاح التشفير ومتجه التهيئة (IV) مكشوفان كنص صريح في ترويسة استجابة HTTP المسماة X‑Backup‑Security، مما يتيح فك التشفير فورًا.
📦 الميزات
info – عرض معلومات تفصيلية حول الثغرة (الوصف، السبب الجذري، الأثر).
scan – فحص خفيف لمعرفة ما إذا كان الهدف معرّضًا للثغرة (يرسل طلب HEAD ويبحث عن ترويسة X‑Backup‑Security).
exploit – تنزيل النسخة الاحتياطية المشفّرة، واستخراج المفتاح/IV من الترويسة، وفك تشفير البيانات، وحفظها في ملف.
🚨التأثير
إذا تم استغلالها، يمكن للمهاجم الحصول على:
بيانات اعتماد المستخدمين ورموز الجلسات (database.db)
أسرار التطبيق ومفاتيح API (app.ini)
المفاتيح الخاصة وشهادات SSL (server.key, server.cert)
تكوين Nginx الكامل (nginx.conf)
مفاتيح TLS لجميع النطاقات المستضافة (مجلد ssl/)
يؤدي هذا عادةً إلى اختراق كامل للخادم والتنقل الجانبي داخل الشبكة.
⚙️ المتطلبات
Python 3.6+
مكتبة requests
pycryptodome (لفك تشفير AES)
ثبّت التبعيات باستخدام:
bash
pip install requests pycryptodome
🔧 الاستخدام
text
usage: CVE-2026-27944.py [-h] {info,scan,exploit} ...
CVE-2026-27944 - Nginx UI Backup Exposure Scanner & Exploit
positional arguments:
{info,scan,exploit} Subcommands
info Display detailed information about the CVE
scan Check if a target is vulnerable
exploit Download and decrypt the backup
optional arguments:
-h, --help show this help message and exit
أمثلة
bash
python3 CVE-2026-27944.py info
bash
python3 CVE-2026-27944.py scan 192.168.1.100:9000
bash
python3 CVE-2026-27944.py exploit 192.168.1.100:9000 -o backup_decrypted.zip
عادةً ما يكون الملف المفكوك تشفيره أرشيف ZIP – أعد تسميته إلى .zip وافحص محتوياته.
📚 كيف يعمل
يرسل السكربت طلب HEAD إلى /api/backup للتحقق من وجود ترويسة X‑Backup‑Security.
إذا وُجدت، يتابع بإرسال طلب GET لتنزيل النسخة الاحتياطية المشفّرة.
تحتوي قيمة الترويسة على مفتاح AES‑256 ومتجه IV بترميز Base64، مفصولين بنقطتين رأسيتين.
يقوم السكربت بفك ترميزهما، ويستخدم pycryptodome لفك تشفير البيانات (وضع CBC في AES‑256)، ويزيل حشوة PKCS#7.
تُحفظ البايتات المفكوكة تشفيرها في ملف الإخراج المحدد.
⚠️ إخلاء المسؤولية
هذه الأداة مقدمة لأغراض تعليمية وبحوث أمنية فقط.
الاختبار غير المصرح به للأنظمة التي لا تملكها أو ليس لديك إذن صريح لاختبارها يُعد غير قانوني. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذا السكربت.
🛡️ التخفيف
إذا كنت تستخدم Nginx UI، قم بتحديثه إلى الإصدار 2.3.3 أو أحدث فورًا.
بالإضافة إلى ذلك:
قم بتدوير جميع بيانات الاعتماد والأسرار التي قد تكون مكشوفة.
أعد توليد شهادات SSL/TLS.
لا تعرّض الواجهات الإدارية للإنترنت العام أبدًا – استخدم جدران الحماية أو شبكات VPN.
📄 الترخيص
هذا المشروع مرخّص بموجب رخصة MIT – راجع ملف LICENSE للتفاصيل.
📬 المراجع
MITRE CVE‑2026‑27944 (عنصر نائب)
سجل NVD (عنصر نائب)
الموقع الرسمي لـ Nginx UI