Ad

CVE-2026-78230

MEDIUM CVSS 4.0: 6,0 EPSS 0.43%
Обновлено 8 сентября 2026
AshAi
Параметр Значение
CVSS 6,0 (MEDIUM)
Уязвимые версии до 1.0.3.
Тип уязвимости CWE-1220
Поставщик AshAi
Публичный эксплойт Нет

AshAi предоставляет действия чтения Ash для вызовов инструментов языковой модели. Инструмент чтения принимает тип совокупного результата (мин, максимум, сумма, среднее), который создает специальный Ash.Query.Aggregate для именованного поля и возвращает его необработанное значение. Политики полей Ash редактируют запрещенные поля в возвращаемых записях (заменяя их на %Ash.ForbiddenField{}), но это редактирование не применяется к агрегированным значениям.

Таким образом, вызывающий инструмент может прочитать поле, запрещенное политикой поля вызывающего субъекта, запросив его как агрегат; min/max, в частности, возвращает фактическое значение поля. Сюда входят поля, которые являются общедоступными? true, но ограничено для каждого субъекта политикой поля, например конфиденциальной личной информацией. Существующая проверка инструмента требовала только того, чтобы поле было общедоступным, что является отдельной осью от авторизации политики поля для каждого актера.

Исправление авторизует агрегированное поле в соответствии с политиками полей ресурса, поэтому агрегирование по полю, которое актер не может видеть, отклоняется или ограничивается строками, где оно видимо. Эта проблема затрагивает ash_ai: с 0.1.0 до 1.0.3.

Показать оригинальное описание (EN)

AshAi exposes Ash read actions to language-model tool calls. The read tool accepts an aggregate result type (min, max, sum, avg) that builds an ad-hoc Ash.Query.Aggregate over a named field and returns its raw value. Ash field policies redact forbidden fields on returned records (replacing them with %Ash.ForbiddenField{}), but that redaction does not apply to aggregate values. A tool caller could therefore read a field the calling actor's field policies forbid by requesting it as an aggregate; min/max in particular return an actual field value. This includes fields that are public? true but restricted per-actor by a field policy, such as sensitive PII. The tool's existing check only required the field to be public, which is a separate axis from per-actor field-policy authorization. The fix authorizes the aggregated field against the resource's field policies, so aggregating over a field the actor may not see is refused or scoped to the rows where it is visible. This issue affects ash_ai: from 0.1.0 before 1.0.3.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Условия для атаки
Требуются
Нужны дополнительные условия
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Нет
Нет модификации данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v4.0

Тип уязвимости (CWE)