CVE-2026-78230
Description
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.
How to fix
- ash-project ash_ai1.0.3, 9c02de581625c342c9870a672830bff28c1d701e or later
Affected products
| Product | Affected versions | Fixed in |
|---|---|---|
| ash-project ash_ai | 0.1.0 ≤ v < 1.0.3, 2ba234b50946a3b8116190c8467f9f4dfa5edce7 ≤ v < 9c02de581625c342c9870a672830bff28c1d701e | 1.0.3, 9c02de581625c342c9870a672830bff28c1d701e |
Check your version
Choose the product and enter the version you run to see whether it falls in the affected range.
Attack Surface Management
See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.