Description
Incorrect Authorization vulnerability in ash-project ash authorizes an aggregate under one read action while computing it under another, so an aggregate can run with policies that do not match the action it was authorized against.

Ash.Actions.Aggregate groups aggregates by their {authorize?, read_action} and authorizes each group under that read action, but when building the data query it selected the action as opts[:action] || read_action || <primary read> (lib/ash/actions/aggregate.ex). When a caller passed an :action option, the aggregate query ran under that action while authorization had been computed for the group's own read_action. If the run action's read policies are more permissive than the authorized one, the aggregate (a count or sum) is computed over records the authorized action's policies would have excluded, disclosing information about data the actor cannot read. The fix runs the aggregate under the same read_action it is authorized against.

This issue affects ash: from 3.5.13 before 3.32.2.
Published: 2026-09-01
Score: 2.1 Low
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw in Ash occurs when the aggregate component authorizes an operation under one read_action but executes it under another, which allows a user to request aggregate calculations that bypass the intended access controls. Because aggregates are recomputed with read policies that may be more permissive than those used for authorization, sensitive data can be revealed through sums or counts. The vulnerability is an example of an authorization bypass due to a user‑controlled key and is listed as CWE‑863.

Affected Systems

Versions 3.5.13 through 3.32.1 of the Ash framework from ash-project are affected.

Risk and Exploitability

CVSS score 2.1 classifies the flaw as low severity; no EPSS score is available and it is not listed in CISA KEV. The risk is limited but could still allow an attacker who can invoke aggregates with a custom action to glean data they are not authorized to see. The likely attack vector is a remote request to an exposed API that accepts a :action parameter; no explicit local‑only vulnerabilities are described. The low score and lack of publicly available exploits suggest the immediate threat is modest, but the presence of an authorization mismatch warrants caution.

Generated by OpenCVE AI on September 1, 2026 at 05:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Ash to version 3.32.2 or later, which applies the authorization fix for aggregates.
  • If an immediate upgrade is not feasible, restrict aggregate calls so that the :action option cannot override the authorized read_action, effectively forcing aggregates to run under the authorized read_action.
  • Audit existing aggregate implementations throughout the codebase to confirm that no aggregate operation is executed with an action parameter that differs from the authorized read_action.

Generated by OpenCVE AI on September 1, 2026 at 05:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 04:00:00 +0000

Type Values Removed Values Added
Description Incorrect Authorization vulnerability in ash-project ash authorizes an aggregate under one read action while computing it under another, so an aggregate can run with policies that do not match the action it was authorized against. Ash.Actions.Aggregate groups aggregates by their {authorize?, read_action} and authorizes each group under that read action, but when building the data query it selected the action as opts[:action] || read_action || <primary read> (lib/ash/actions/aggregate.ex). When a caller passed an :action option, the aggregate query ran under that action while authorization had been computed for the group's own read_action. If the run action's read policies are more permissive than the authorized one, the aggregate (a count or sum) is computed over records the authorized action's policies would have excluded, disclosing information about data the actor cannot read. The fix runs the aggregate under the same read_action it is authorized against. This issue affects ash: from 3.5.13 before 3.32.2.
Title Ash.Actions.Aggregate authorizes an aggregate under one action but computes it under another
First Time appeared Ash-project
Ash-project ash
Weaknesses CWE-863
CPEs cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash
References
Metrics cvssV4_0

{'score': 2.1, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-01T03:52:01.686Z

Reserved: 2026-08-31T01:00:09.774Z

Link: CVE-2026-82748

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-01T04:18:05.143

Modified: 2026-09-01T04:18:05.143

Link: CVE-2026-82748

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T05:30:03Z

Weaknesses