Arc — это открытая база данных временных рядов на основе SQL для телеметрии. До версии 26.06.1 пользовательский SQL-валидатор Arc (internal/api/query.go:ValidateSQLRequest) блокировал только `read_parquet(` и `arc_partition_agg(` через список запрещенных регулярных выражений. Более широкое семейство функций ввода-вывода DuckDB — `read_csv_auto`, `read_csv`, `read_json`, `read_json_auto`, `read_text`, `read_blob`, `glob`, `parquet_metadata`, `parquet_schema`, `read_xlsx` и т. д. — не блокировалось.
При извлечении ссылок на таблицы RBAC проверялись только предложения `FROM`/`JOIN`, поэтому скалярные табличные функции в списке `SELECT` проскользнули мимо обоих уровней. Это исправлено в версии 2026.06.1 через структурную песочницу в DuckDB. После блокировки DuckDB отказывается открывать любой файл за пределами списка разрешений и отказывается от дальнейшей установки `INSTALL`/`LOAD`.
Уже загруженные расширения остаются доступными. Доступны некоторые обходные пути. Ограничьте доступ API к известным доверенным сетям с помощью правил брандмауэра или, в качестве временного решения, добавьте `read_csv*`/`read_json*`/`glob` и т. д. в `dangerousSQLPattern`. `внутренний/api/query.go`.
Показать оригинальное описание (EN)
Arc is an open, SQL-native time-series database for telemetry. Prior to version 26.06.1, Arc's user-SQL validator (`internal/api/query.go:ValidateSQLRequest`) blocked only `read_parquet(` and `arc_partition_agg(` via regex denylist. The broader DuckDB I/O function family — `read_csv_auto`, `read_csv`, `read_json`, `read_json_auto`, `read_text`, `read_blob`, `glob`, `parquet_metadata`, `parquet_schema`, `read_xlsx`, etc. — was not blocked. RBAC table-reference extraction inspected only `FROM`/`JOIN` clauses, so scalar table functions in the `SELECT` list slipped past both layers. This is fixed in 2026.06.1 via a structural sandbox at the DuckDB layer. After lockdown, DuckDB refuses to open any file outside the allowlist and refuses further `INSTALL`/`LOAD`. Already-loaded extensions remain callable. Some workarounds are available. Restrict API access to known-trusted networks via firewall rules or, as a temporary mitigation, add `read_csv*`/`read_json*`/`glob` etc. to `dangerousSQLPattern` in `internal/api/query.go`.
Характеристики атаки
Последствия
Строка CVSS v4.0