19.05.2022

Уязвимости в Grafana, позволяющие получить доступ к файлам в системе

В открытой платформе визуализации данных Grafana выявлена уязвимость (CVE-2021-43798), позволяющая выйти за пределы базового каталога и получить доступ к произвольным файлам в локальной файловой системе сервера, насколько это позволяют права доступа пользователя, под которым выполняется Grafana. Проблема вызвана некорректной работой обработчика пути «/public/plugins/<plugin-id>/», в котором допускалось использование символов «..» для доступа к нижележащим каталогам.

Уязвимость может быть эксплуатирована через обращение к URL типовых предустановленных плагинов, таких как «/public/plugins/graph/», «/public/plugins/mysql/» и «/public/plugins/prometheus/» (всего предустановлено около 40 плагинов). Например, для доступа к файлу /etc/passwd можно было отправить запрос «/public/plugins/prometheus/../../../../../../../../etc/passwd». Для выявления следов эксплутации рекомендуется проверить наличие маски «..%2f» в логах http-сервера.

Проблема проявлялась начиная с версии 8.0.0-beta1 и устранена в выпусках Grafana 8.3.1, 8.2.7, 8.1.8 и 8.0.7, но следом были выявлены ещё две похожие уязвимости (CVE-2021-43813, CVE-2021-43815) которые проявлялись начиная с версий Grafana 5.0.0 и Grafana 8.0.0-beta3, и позволяли аутентифицированному пользователю Grafana получить доступ к произвольным файлам в системе, имеющим расширения «.md» и «.csv» (с именами файлов только в нижнем или только в верхнем регистре), через манипуляцию с символами «..» в путях «/api/plugins/.*/markdown/.*» и «/api/ds/query». Для устранения данных уязвимостей сформированы обновления Grafana 8.3.2 и 7.5.12.

Источник.