Junglewise Threat Intelligence

CVE-2026-86338: Ash field_policies authorization bypass in calculations and aggregates

CVE-2026-86338 · Severity: info · Published 2026-09-16

Technologies: Ash.

Executive brief

Ash is a framework for building data applications with built-in access controls. A flaw in its field-level access policies allows actors to bypass authorization and discover protected field values through strategic filtering of calculations and aggregates. An attacker with filter access can probe protected fields one value at a time, circumventing security controls meant to hide sensitive data from lower-privileged users.

Technical details

The vulnerability is an authorization bypass in Ash's field_policies authorization layer. Field policies are designed to nil out references to fields an actor cannot see when they appear in filter expressions, preventing information disclosure through filtering. However, this nilling was only applied to attributes but not to calculations or aggregates. When a filter references a calculation or aggregate, the authorizer receives an Ash.Query.Calculation or Ash.Query.Aggregate struct instead of an Ash.Resource.* struct, which the reference replacement logic did not match. This allows the filter to run against the real value, enabling an attacker to use filter expressions like `filter(secret_calc == "x")` as an oracle to recover protected values. The fix applies the same field-policy nilling logic to calculations and aggregates as to attributes.

Affected products

  • Ash Ash from 2.11.0-rc.0 before 3.33.4

Timeline

  • 2026-09-16: disclosed

References