
Prova di concetto per CVE-2026-37197: Server-Side Request Forgery (SSRF) in NukeViet CMS v4.5.07 admin remote upload, che permette l'enumerazione della rete interna e l'accesso a endpoint ristretti.
Esiste una vulnerabilità di Server-Side Request Forgery (SSRF) in VINADES JSC NukeViet CMS v4.5.07 all'interno della funzione di caricamento remoto dell'amministratore. Il problema consente a un amministratore autenticato di attivare richieste HTTP lato server verso URL arbitrari fornendo un URL di file remoto appositamente modificato durante il caricamento del file.
Questa vulnerabilità può consentire agli aggressori di interagire con i servizi di rete interni, eseguire scansioni di risorse interne o accedere a endpoint limitati che non sono raggiungibili direttamente dall'esterno.
La vulnerabilità è presente nei seguenti componenti:
admin/upload/upload.php
vendor/vinades/nukeviet/Files/Upload.php
Le funzioni interessate includono:
save_urlfile()
check_url()
Queste funzioni elaborano un URL di file remoto fornito dall'utente (fileurl) senza una validazione sufficiente o restrizioni sulle richieste in uscita.
La funzionalità di caricamento remoto consente agli amministratori di caricare file utilizzando un URL come sorgente. Quando viene fornito un URL appositamente modificato tramite il parametro fileurl, l'applicazione esegue una richiesta lato server verso la destinazione indicata.
A causa di una validazione insufficiente, un aggressore con accesso amministrativo può abusare di questo comportamento per costringere il server dell'applicazione a effettuare richieste HTTP verso risorse interne o esterne arbitrarie.
Inoltre, i reindirizzamenti vengono seguiti, aumentando il rischio di accesso a risorse interne e di ricognizione della rete.
Un amministratore autenticato invia un URL appositamente modificato all'endpoint di caricamento remoto.
Esempio di scenario di attacco:
Esempi di target:
http://127.0.0.1
http://localhost
http://169.254.169.254
http://192.168.1.1
http://internal-service:8080
Ciò potrebbe consentire:
Esempio di richiesta appositamente modificata:
POST /admin/index.php?language=en&nv=upload&op=upload HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
Cookie: admin_session=SESSION
fileurl=http://127.0.0.1:8080
Il server tenta di recuperare l'URL fornito, generando una richiesta lato server verso una risorsa interna.
Uno sfruttamento riuscito può consentire a un aggressore di:
Il problema si verifica a causa di:
VINADES JSC dovrebbe implementare le seguenti mitigazioni:
127.0.0.0/8
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
169.254.169.254
localhost
http
https
Disabilitare o limitare i reindirizzamenti.
Implementare la validazione del nome host e del DNS per prevenire tecniche di bypass SSRF.
Utilizzare un approccio basato su whitelist per domini remoti fidati, ove possibile.
Pavan V