OneUptime — это решение для мониторинга и управления онлайн-сервисами. До версии 10.0.23 API агрегирования телеметрии принимал управляемые пользователем параметры aggregationType, AggregationColumnName и aggregationTimestampColumnName и интерполировал их непосредственно в SQL-запросы ClickHouse с помощью метода .append() (задокументированного как «доверенный SQL»). Нет списка разрешенных, нет привязки параметризованного запроса и нет проверки входных данных.
Аутентифицированный пользователь может внедрить произвольный SQL-код в ClickHouse, обеспечивая полное чтение базы данных (включая данные телеметрии от всех арендаторов), изменение данных и потенциальное удаленное выполнение кода с помощью табличных функций ClickHouse. Эта уязвимость исправлена в версии 10.0.23.
Показать оригинальное описание (EN)
OneUptime is a solution for monitoring and managing online services. Prior to 10.0.23, the telemetry aggregation API accepts user-controlled aggregationType, aggregateColumnName, and aggregationTimestampColumnName parameters and interpolates them directly into ClickHouse SQL queries via the .append() method (documented as "trusted SQL"). There is no allowlist, no parameterized query binding, and no input validation. An authenticated user can inject arbitrary SQL into ClickHouse, enabling full database read (including telemetry data from all tenants), data modification, and potential remote code execution via ClickHouse table functions. This vulnerability is fixed in 10.0.23.
Характеристики атаки
Последствия
Строка CVSS v3.1