Skip to main content

ash_phoenix CVE-2026-82725

| EUVDEUVD-2026-68337 LOW
Authorization Bypass Through User-Controlled Key (CWE-639)
2026-08-31 EEF
2.3
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to target application
  2. Delivery
    Locate AshPhoenix.FilterForm-backed resource endpoint
  3. Exploit
    Submit filter request with path pointing to private relationship
  4. Execution
    Observe presence or absence of returned rows
  5. Persist
    Vary filter values across repeated requests
  6. Impact
    Enumerate existence of private related records

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
Exploitation Conditions

The attacker must hold at least a low-privilege authenticated session (PR:L per CVSS 4.0 vector). The target application must use AshPhoenix.FilterForm to expose filter functionality on an Ash resource that defines one or more relationships marked non-public (public?: false or omitted). The attacker supplies crafted path or field form parameters referencing those private relationship names. Exploitation is limited to a confidentiality oracle - no write access or denial-of-service capability is obtained. Applications not using AshPhoenix.FilterForm, or whose resources define no private relationships accessible via filter forms, are not affected. The CVSS 4.0 AT:P metric confirms that specific deployment conditions (FilterForm usage with private relationships) are required, limiting exposure beyond authenticated access alone.

Impact

The CVSS 4.0 score of 2.3 (Low) accurately reflects the constrained impact: only confidentiality is affected (VC:L), with no integrity or availability impact. The AT:P metric captures a genuine deployment precondition - the application must use AshPhoenix.FilterForm and define private relationships in its Ash resource schema. Authentication is required (PR:L), so unauthenticated users cannot exploit this. No CISA KEV listing and no public proof-of-concept reduce urgency further. Practical impact is a boolean oracle: attackers learn whether private related records exist but do not obtain field values directly, limiting information disclosure severity. Risk is highest in applications where private relationships encode sensitive associations (e.g., billing linkages, role mappings, restricted user relationships) that could be enumerated through repeated filter probing. EPSS score is absent from input data, so exploitation probability cannot be quantified independently. The low CVSS score and AT:P requirement together suggest this is a real but narrow-impact issue warranting a routine patch cycle rather than emergency response.

Exploit ScenarioDerived

An authenticated application user submits a filter form request with the path parameter set to a private Ash relationship name - for example, path=author where author carries public?: false. By toggling the filter value and observing whether the response returns rows or an empty result set, the attacker builds a binary oracle to determine whether matching private related records exist, and repeats across different values to enumerate private relational data. No public proof-of-concept has been identified at time of analysis; the attack requires only standard HTTP form interaction from an authenticated session.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAI

FilterForm in ash_phoenix (versions 0.6.0-rc.1 through 2.3.24) exposes private relationship data to authenticated users by resolving attacker-controlled filter path parameters through private Ash relationship traversal rather than the public-only gate. By supplying crafted path or field form values targeting non-public relationships, an authenticated attacker converts query result row counts into a boolean oracle over data the resource author explicitly marked private. The CVSS 4.0 score is 2.3 (Low); no active exploitation is identified and no public proof-of-concept exists at time of analysis.

RemediationAI

Vendor-released patch: ash_phoenix 2.3.25. Upgrade to version 2.3.25 or later; this release replaces all internal calls to Ash.Resource.Info.related/2 with a public_related/2 helper backed by Ash.Resource.Info.public_relationship/2 that halts at the first non-public relationship hop. The patch commit is at https://github.com/ash-project/ash_phoenix/commit/a3691a3cb0947e8f2dc2c3cbff138a3e6197a15b and the advisory is at https://github.com/ash-project/ash_phoenix/security/advisories/GHSA-7xhg-xphm-f458. If an immediate upgrade is not feasible, add an application-layer allowlist that validates filter path and field parameters against an explicit set of permitted public relationship names before passing params to FilterForm; this trades development effort against residual risk but does not fix the underlying library behavior. Disabling FilterForm entirely on resources with private relationships eliminates the exposure at the cost of removing dynamic filter functionality.

Affected VersionsENISA

ash_phoenix 0.6.0-rc.1 <2.3.25
ash_phoenix 06875682999938f607c970e71b6a80af90e18b3d <a3691a3cb0947e8f2dc2c3cbff138a3e6197a15b

Affected Packages

euvd ash_phoenix fix: 2.3.25

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ash_phoenix is an Elixir library integrating the Ash resource framework with Phoenix LiveView, providing AshPhoenix.FilterForm for dynamic data-filtering UIs. CWE-639 (Authorization Bypass Through User-Controlled Key) applies: user-supplied relationship path keys directly controlled which relationships were traversed during query construction. Internally, parse_path_and_field/2 called Ash.Resource.Info.related/2 - which traverses all relationships regardless of the public?: flag - to resolve each hop in the user-supplied path, checking only the terminal field for public status. A second vector allowed field=some_private_rel to be silently rewritten into an extra path segment, also bypassing the check. The resulting Ash.Query.Ref was passed directly to Ash.Query.do_filter/2, skipping the public-only enforcement that Ash.Filter.parse_input/2 would normally enforce. The fix (commit a3691a3) introduces a public_related/2 helper using Ash.Resource.Info.public_relationship/2 that halts traversal at the first non-public hop and validates the terminal field as public before building any reference.

Know when Ash Phoenix gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 2.3 LOW
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable filter form requires low-privilege authentication; no scope change; confidentiality impact limited to boolean oracle over private relationships only.

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

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Authorization Bypass Through User-Controlled Key vulnerability in ash-project ash_phoenix lets an attacker who controls filter form parameters filter across relationships the resource author marked non-public, turning the returned rows into a boolean oracle over private related data.

AshPhoenix.FilterForm resolved every relationship hop in the user-supplied path with Ash.Resource.Info.related/2, which traverses private relationships, and only checked the terminal field for publicity. parse_path_and_field/2 also rewrote a field naming a relationship into an extra path segment, so field=some_private_rel was accepted too. Both path and field come straight from form params, and the resulting ref went to Ash.Query.do_filter/2 without the public-only enforcement of Ash.Filter.parse_input/2. The fix resolves each hop with Ash.Resource.Info.public_relationship/2, rejecting the first non-public hop, and requires the terminal field to be public.

This issue affects ash_phoenix: from 0.6.0-rc.1 before 2.3.25.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Low
Elixir ecosystem library, narrow enterprise deployment footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

12
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +12
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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