Уязвимость Vesta — получение root
Популярная веб панель для удобного управления сервером поставляемая по лицензии GPLv3 Vesta, оказалась подверженной очень серьезной уязвимости. Критическая уязвимость, позволяет повысить привилегии в систему до root.
Сущность заключается в передаче настроек аутентификации передаваемых веб серверу nginx, путем подключения директивы include в конфигурационном файле nginx.conf.
Такие файлы настроек пользователей хранятся в их директориях вида
1 |
/home/{user}/web/{domain}/stats/auth.conf |
Доступны для записи пользователю. При этом при перезагрузки веб сервера nginx данные файлы обрабатываются root. Таким образом пользователь может изменить файл auth.conf и сможет получить доступ к другим файлам системы, таким как /etc/shadow
Пример, кода который пользователь может использовать для этого
1 2 3 4 |
client_body_temp_path /etc/shadow; location /vstats/steal { alias / ; } |
В строке первой появляется возможность изменить владельца shadow пользователем nginx, а во второй строке можно в браузере просмотреть содержимое этого файла http://test.com/vstats/steal/etc/shadow
Эта уязвимость так же позволяет изменить содержимое для системных файлов, это позволит получить root даже без перебора паролей. Например.
1 2 3 4 |
client_body_temp_path /etc/profile.d/vim.sh; location /evil { error_log /etc/profile.d/vim.sh; } |
В файл /vim.sh запишутся данные при оправке неверного запроса к сайту.
Данная уязвимость передана разработчикам, но до выходя исправления можно заменить права на изменения файла auth.conf и папок пользователя, что бы защитить свой сервер.
Нужна поддержка сервера, обращайтесь [email protected]