ГлавнаяБаза уязвимостей БДУ → BDU:2024-08900
7.8высокая

BDU:2024-08900

Уязвимость функции GetConfPath() пользовательского интерфейса Nginx UI сервера nginx, позволяющая нарушителю записывать произвольные файлы
Опубликовано: 2024-11-01
Описание

Уязвимость функции GetConfPath() пользовательского интерфейса Nginx UI сервера nginx связана с ошибочным получением значений полей json без проверки в результате неверного ограничения имени пути к каталогу с ограниченным доступом. Эксплуатация уязвимости может позволить нарушителю, действующему удалённо, записывать произвольные файлы

Затрагиваемое ПО и версии
Nginx UI (до 2.0.0-beta.35 включительно)
Способ устранения

Использование рекомендаций:
https://github.com/0xJacky/nginx-ui/releases/tag/v2.0.0-beta.36

Компенсирующие меры:
Рекомендуется изменять функцию GetConfPath() напрямую:

func GetConfPath(dir ...string) (confPath string) {
if settings.NginxSettings.ConfigDir == "" {
out := getNginxV()
r, _ := regexp.Compile("--conf-path=(.*)/(.*.conf)")
match := r.FindStringSubmatch(out)
if len(match) < 1 {
logger.Error("nginx.GetConfPath len(match) < 1")
return ""
}
confPath = match[1]
} else {
confPath = settings.NginxSettings.ConfigDir
}

// Ensure confPath does not allow directory traversal
safeConfPath := filepath.Clean(confPath)

return filepath.Join(safeConfPath, filepath.Join(dir...))
}

Оценка CVSS
Балл7.8 — высокая опасность
Источники и патчи
https://github.com/0xJacky/nginx-ui/releases/tag/v2.0.0-beta.36https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-prv4-rx44-f7jr
Проверьте безопасность своего сайта и почты → Полная проверка домена