
CVE-2026-27944 - Nginx UI Unauthenticated Backup Download & Decryption
CVE-2026-27944 - Téléchargement et déchiffrement non authentifiés de sauvegarde 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
Une preuve de concept (PoC) pour CVE‑2026‑27944, une vulnérabilité critique dans Nginx UI ≤ 2.3.2 qui permet à tout attaquant non authentifié de télécharger et de déchiffrer l'archive de sauvegarde complète du serveur via le point de terminaison /api/backup.
La sauvegarde est chiffrée avec AES‑256, mais la clé de chiffrement et le vecteur d'initialisation (IV) sont exposés en clair dans l'en-tête de réponse HTTP X‑Backup‑Security, permettant un déchiffrement immédiat.
📦 Fonctionnalités
info – Afficher des informations détaillées sur la vulnérabilité (description, cause racine, impact).
scan – Vérification légère si une cible est vulnérable (envoie une requête HEAD, recherche l'en-tête X‑Backup‑Security).
exploit – Télécharger la sauvegarde chiffrée, extraire la clé/IV de l'en-tête, déchiffrer les données et les enregistrer dans un fichier.
🚨Impact
En cas d'exploitation, un attaquant peut obtenir :
Identifiants utilisateur et jetons de session (database.db)
Secrets d'application et clés API (app.ini)
Clés privées et certificats SSL (server.key, server.cert)
Configuration complète de Nginx (nginx.conf)
Clés TLS pour tous les domaines hébergés (répertoire ssl/)
Cela conduit généralement à une compromission complète du serveur et à un mouvement latéral au sein du réseau.
⚙️ Prérequis
Python 3.6+
bibliothèque requests
pycryptodome (pour le déchiffrement AES)
Installer les dépendances avec :
bash
pip install requests pycryptodome
🔧 Utilisation
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
Exemples
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
Le fichier déchiffré est généralement une archive ZIP – renommez-le en .zip et inspectez son contenu.
📚 Fonctionnement
Le script envoie une requête HEAD à /api/backup pour vérifier la présence de l'en-tête X‑Backup‑Security.
S'il est trouvé, il procède à une requête GET pour télécharger la sauvegarde chiffrée.
La valeur de l'en-tête contient la clé AES‑256 et l'IV encodés en Base64, séparés par deux-points.
Le script les décode, utilise pycryptodome pour déchiffrer les données (mode AES‑256 CBC), et supprime le bourrage PKCS#7.
Les octets déchiffrés sont enregistrés dans le fichier de sortie spécifié.
⚠️ Avertissement
Cet outil est fourni à des fins éducatives et de recherche en sécurité uniquement.
Les tests non autorisés de systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite sont illégaux. L'auteur n'est pas responsable de toute utilisation abusive ou des dommages causés par ce script.
🛡️ Atténuation
Si vous utilisez Nginx UI, mettez immédiatement à jour vers la version 2.3.3 ou ultérieure. De plus :
Faire pivoter tous les identifiants et secrets qui ont pu être exposés.
Régénérer les certificats SSL/TLS.
Ne jamais exposer les interfaces d'administration sur Internet public – utiliser des pare-feu ou des VPN.
📄 Licence
Ce projet est sous licence MIT – voir le fichier LICENSE pour plus de détails.
📬 Références
MITRE CVE‑2026‑27944 (espace réservé)
Entrée NVD (espace réservé)
Site officiel de Nginx UI