Skip to main content

Ash Framework CVE-2026-86338

| EUVDEUVD-2026-80285 MEDIUM
Insufficient Granularity of Access Control (CWE-1220)
2026-09-16 EEF GHSA-h9mg-hh48-hrwv
6.0
CVSS 4.0 · Vendor: EEF
Share

Severity by source

Vendor (EEF) PRIMARY
6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.3 MEDIUM

Network-reachable filter API but requires an authenticated low-priv actor (PR:L) and iterative oracle probing (AC:H); confidentiality-only impact (C:H), no integrity/availability effect and no scope change.

3.1 AV:N/AC:H/PR:L/UI:N/S:N/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

2
Metadata Corrected
Sep 16, 2026 - 09:40 vuln.today
tag: Elixir added
Analysis Generated
Sep 16, 2026 - 09:10 vuln.today

DescriptionCVE.org

Ash field_policies are documented to protect against filter-based information disclosure: when a field the actor may not see is referenced in a filter, it is replaced with an expression that evaluates to nil, so a filter cannot be used as a yes/no oracle to read a value the actor cannot see.

This nilling was applied to attributes but not to calculations or aggregates. A user-supplied filter reference to a calculation or aggregate carries an Ash.Query.Calculation / Ash.Query.Aggregate struct, which the authorizer's reference replacement did not match (it only matched the Ash.Resource.* structs), so the filter ran against the real value.

As a result, an actor whose field policies forbid a calculation or aggregate can still filter by it (for example filter(secret_calc "x") or filter(comment_count n)) and learn the value from whether rows match - an oracle that recovers field-policy-protected values one probe at a time. Filtering is commonly exposed to lower-privileged actors (for example via AshGraphql or AshJsonApi filter arguments), which is exactly the surface field policies are meant to protect.

The fix routes filter references to calculations and aggregates through the same field-policy nilling as attributes.

This issue affects ash: from 2.11.0-rc.0 before 3.33.4.

AnalysisAI

An authorization bypass in the Ash framework (Elixir) lets authenticated, lower-privileged actors recover values they are not permitted to see by using filtered calculations or aggregates as a yes/no oracle. Ash field policies are designed to protect against filter-based disclosure by rewriting references to forbidden attributes into an expression that evaluates to nil, but prior to 3.33.4 that rewriting only matched Ash.Resource.* structs and not Ash.Query.Calculation or Ash.Query.Aggregate structs, so filters on those ran against real values. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Access
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Execution
technique details hidden
Persist
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires: (1) the Ash application uses Ash.Policy.Authorizer with field_policies that forbid the actor from reading specific calculations or aggregates; (2) the affected resource defines calculations or aggregates (not just plain attributes) that are field-policy-protected; (3) filtering is exposed to the actor - commonly through AshGraphql or AshJsonApi filter arguments - allowing user-supplied filter references; and (4) the actor is authenticated as a lower-privileged user (PR:L). … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment This is a genuine but moderate-severity authorization flaw, not a hair-on-fire remote code execution issue. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Upgrade the ash dependency to 3.33.4 or later, which routes filter references to calculations and aggregates through the same field-policy nilling as attributes; the fix is delivered by the commit referenced in the advisory (b3d4503241f3deacb5ceb955e10a4fa927da0f67, with 0b6d93c7c4637280b46ae66ea1d2eaf013701238 containing the accompanying documentation and field-policy changes). … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-86338 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy