Chartbrew — это веб-приложение с открытым исходным кодом, которое может напрямую подключаться к базам данных и API и использовать данные для создания диаграмм. До версии 4.9.0 в Chartbrew существовал обход авторизации между арендаторами в GET /team/:team_id/template/generate/:project_id. Обработчик GET вызывает checkAccess(req, «updateAny», «chart»), не ожидая возвращенного обещания, и не проверяет, принадлежит ли предоставленный project_id req.params.team_id или команде вызывающего объекта.
В результате прошедший проверку подлинности злоумышленник с действительными разрешениями на создание шаблонов в своей собственной команде может запросить модель шаблона для проекта, принадлежащего другой команде, и получить данные проекта-жертвы. Эта уязвимость исправлена в версии 4.9.0.
Показать оригинальное описание (EN)
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create charts. Prior to 4.9.0, a cross-tenant authorization bypass exists in Chartbrew in GET /team/:team_id/template/generate/:project_id. The GET handler calls checkAccess(req, "updateAny", "chart") without awaiting the returned promise, and it does not verify that the supplied project_id belongs to req.params.team_id or to the caller's team. As a result, an authenticated attacker with valid template-generation permissions in their own team can request the template model for a project belonging to another team and receive victim project data. This vulnerability is fixed in 4.9.0.
Характеристики атаки
Последствия
Строка CVSS v3.1