
Proof-of-concept for CVE-2026-37197: Server-Side Request Forgery (SSRF) в NukeViet CMS v4.5.07 admin remote upload, enabling internal network enumeration and access to restricted endpoints.
Подделка запросов на стороне сервера (SSRF) существует в VINADES JSC NukeViet CMS v4.5.07 в функции удалённой загрузки администратора. Проблема позволяет аутентифицированному администратору инициировать HTTP-запросы на стороне сервера к произвольным URL, указав поддельный URL удалённого файла при загрузке.
Эта уязвимость может позволить атакующим взаимодействовать с внутренними сетевыми службами, сканировать внутренние ресурсы или получить доступ к ограниченным конечным точкам, которые недоступны напрямую извне.
Уязвимость присутствует в следующих компонентах:
admin/upload/upload.php
vendor/vinades/nukeviet/Files/Upload.php
Затронутые функции включают:
save_urlfile()
check_url()
Эти функции обрабатывают предоставленный пользователем URL удалённого файла (fileurl) без достаточной проверки или ограничений на исходящие запросы.
Функция удалённой загрузки позволяет администраторам загружать файлы, используя URL-источник. Когда через параметр fileurl передаётся поддельный URL, приложение выполняет запрос на стороне сервера к указанному адресату.
Из-за недостаточной валидации атакующий с правами администратора может использовать это поведение, чтобы заставить сервер приложения инициировать HTTP-запросы к произвольным внутренним или внешним ресурсам.
Кроме того, перенаправления обрабатываются автоматически, что увеличивает риск доступа к внутренним ресурсам и сетевой разведки.
Аутентифицированный администратор отправляет поддельный URL на конечную точку удалённой загрузки.
Пример сценария атаки:
Примеры целей:
http://127.0.0.1
http://localhost
http://169.254.169.254
http://192.168.1.1
http://internal-service:8080
Это может позволить:
Пример поддельного запроса:
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
Сервер пытается загрузить указанный URL, что приводит к запросу на стороне сервера к внутреннему ресурсу.
Успешная эксплуатация может позволить атакующему:
Проблема возникает из-за:
VINADES JSC следует реализовать следующие меры защиты:
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
Отключить или ограничить перенаправления.
Реализовать проверку имени хоста и DNS для предотвращения методов обхода SSRF.
По возможности использовать белый список для доверенных удалённых доменов.
Pavan V