
CVE-2026-27944 - Download e decifratura del backup senza autenticazione in Nginx UI
CVE-2026-27944 - Download e decifratura non autenticata del backup di 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
Un proof-of-concept (PoC) per CVE-2026-27944, una vulnerabilità critica in Nginx UI ≤ 2.3.2 che consente a qualsiasi attaccante non autenticato di scaricare e decifrare l'archivio di backup completo del server tramite l'endpoint /api/backup.
Il backup è cifrato con AES-256, ma la chiave di cifratura e il vettore di inizializzazione (IV) sono esposti in chiaro nell'header di risposta HTTP X-Backup-Security, consentendo una decifratura immediata.
📦 Funzionalità
info – Mostra informazioni dettagliate sulla vulnerabilità (descrizione, causa principale, impatto).
scan – Verifica leggera se un target è vulnerabile (invia una richiesta HEAD e cerca l'header X-Backup-Security).
exploit – Scarica il backup cifrato, estrae chiave/IV dall'header, decifra i dati e li salva in un file.
🚨Impatto
Se sfruttata, un attaccante può ottenere:
Credenziali utente e token di sessione (database.db)
Segreti dell'applicazione e chiavi API (app.ini)
Chiavi private e certificati SSL (server.key, server.cert)
Configurazione Nginx completa (nginx.conf)
Chiavi TLS per tutti i domini ospitati (directory ssl/)
Questo porta tipicamente al compromesso totale del server e al movimento laterale all'interno della rete.
⚙️ Requisiti
Python 3.6+
libreria requests
pycryptodome (per la decifratura AES)
Installa le dipendenze con:
bash
pip install requests pycryptodome
🔧 Utilizzo
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
Esempi
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
Il file decifrato è di solito un archivio ZIP – rinominalo in .zip e ispeziona il suo contenuto.
📚 Come funziona
Lo script invia una richiesta HEAD a /api/backup per verificare la presenza dell'header X-Backup-Security.
Se presente, procede con una richiesta GET per scaricare il backup cifrato.
Il valore dell'header contiene la chiave AES-256 e l'IV codificati in Base64, separati da due punti.
Lo script li decodifica, usa pycryptodome per decifrare i dati (modalità AES-256 CBC) e rimuove il padding PKCS#7.
I byte decifrati vengono salvati nel file di output specificato.
⚠️ Avvertenze
Questo strumento è fornito esclusivamente a scopo educativo e di ricerca sulla sicurezza.
Testare senza autorizzazione sistemi che non si possiedono o per cui non si ha un permesso esplicito è illegale. L'autore non è responsabile per qualsiasi uso improprio o danno causato da questo script.
🛡️ Mitigazione
Se stai usando Nginx UI, aggiorna immediatamente alla versione 2.3.3 o successiva.
Inoltre:
Ruota tutte le credenziali e i segreti che potrebbero essere stati esposti.
Rigenera i certificati SSL/TLS.
Non esporre mai le interfacce amministrative su Internet pubblico – usa firewall o VPN.
📄 Licenza
Questo progetto è concesso in licenza sotto la MIT License – consulta il file LICENSE per i dettagli.
📬 Riferimenti
MITRE CVE-2026-27944 (segnaposto)
Voce NVD (segnaposto)
Sito ufficiale di Nginx UI