Skip to main content
VulnerabilityPublished

CVE-2026-86338: ash · Insufficient Granularity of Access Control

Affects ashSource CVE Database V5

0
Compare

Not known to be exploited · CVSS 6.0 Medium : upgrade to 3.33.4 when convenient.

Data as of 31 Oct 2026, 08:20 UTC

CVSS 4.0 base score
6.0Medium
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.4% chance of exploitation in 30 days – higher than 37% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 3.33.4, b3d4503241f3deacb5ceb955e10a4fa927da0f67
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

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 16 Sep 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponized: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 30 Oct 2026.

What to do

Upgrade ash to 3.33.4; ash to b3d4503241f3deacb5ceb955e10a4fa927da0f67.

Affected software

ProductAffectedFixed in
ash-projectashAffected
  • >=2.11.0-rc.0 <3.33.4
Fixed in
  • 3.33.4
ash-projectashAffected
  • ≥ 0b6d93c7c4637280b46ae66ea1d2eaf013701238, < b3d4503241f3deacb5ceb955e10a4fa927da0f67
Fixed in
  • b3d4503241f3deacb5ceb955e10a4fa927da0f67
Hexashpkg:hex/ashOther threatsAffected
  • >=2.11.0-rc.0 <3.33.4
Fixed in
  • 3.33.4

CPE configurations (1)

  • cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

A fix is available in ash versions 3.33.4 and later that applies nilling protections to calculations and aggregates in filters. Users should upgrade to version 3.33.4 or later to remediate this vulnerability.

Description

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.

References

Community reviews

Loading reviews…