
Preuve de concept pour CVE-2026-37197 : Server-Side Request Forgery (SSRF) dans l'upload distant de l'administration de NukeViet CMS v4.5.07, permettant l'énumération du réseau interne et l'accès à des points de terminaison restreints.
Une vulnérabilité de type Server-Side Request Forgery (SSRF) existe dans VINADES JSC NukeViet CMS v4.5.07 au sein de la fonctionnalité d'upload distant de l'administration. Le problème permet à un administrateur authentifié de déclencher des requêtes HTTP côté serveur vers des URL arbitraires en fournissant une URL de fichier distant malveillante lors de l'upload.
Cette vulnérabilité peut permettre à des attaquants d'interagir avec les services réseau internes, de scanner des ressources internes ou d'accéder à des points d'accès restreints qui ne sont pas directement accessibles depuis l'extérieur.
La vulnérabilité existe dans les composants suivants :
admin/upload/upload.php
vendor/vinades/nukeviet/Files/Upload.php
Les fonctions concernées sont les suivantes :
save_urlfile()
check_url()
Ces fonctions traitent une URL de fichier distant fournie par l'utilisateur (fileurl) sans validation suffisante ni restrictions sur les requêtes sortantes.
La fonctionnalité d'upload distant permet aux administrateurs de téléverser des fichiers à partir d'une URL source. Lorsqu'une URL malveillante est fournie via le paramètre fileurl, l'application émet une requête côté serveur vers la destination indiquée.
Comme la validation est insuffisante, un attaquant disposant d'un accès administrateur peut abuser de ce comportement pour forcer le serveur applicatif à initier des requêtes HTTP vers des ressources internes ou externes arbitraires.
De plus, les redirections sont suivies, ce qui accroît le risque d'accès aux ressources internes et de reconnaissance réseau.
Un administrateur authentifié soumet une URL malveillante au point d'accès d'upload distant.
Exemple de scénario d'attaque :
Exemples de cibles :
http://127.0.0.1
http://localhost
http://169.254.169.254
http://192.168.1.1
http://internal-service:8080
Cela peut permettre :
Exemple de requête malveillante :
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
Le serveur tente de récupérer l'URL fournie, ce qui entraîne une requête côté serveur vers une ressource interne.
Une exploitation réussie peut permettre à un attaquant de :
Le problème provient de :
VINADES JSC devrait mettre en œuvre les mesures suivantes :
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
Désactiver ou restreindre les redirections.
Implémenter une validation des noms d'hôte et du DNS pour empêcher les techniques de contournement SSRF.
Utiliser une approche de liste blanche pour les domaines distants de confiance lorsque c'est possible.
Pavan V