CVE-2026-70395: CWE-943 Improper Neutralization of Special Elements in Data Query Logic in ash-project ash
CVE-2026-70395 is a low-severity vulnerability in ash-project ash that allows an attacker to manipulate data query logic by forging a relationship to a record without naming it and recovering the secret lookup value. This occurs because client-supplied lookup values are not properly cast to the expected attribute type, enabling crafted nested maps to be interpreted as filter predicates. The vulnerability affects version 1.52.0-rc.11 and prior to 3.31.1. Authorization policies remain effective, limiting unauthorized data access.
AI Analysis
Technical Summary
The vulnerability arises when the manage_relationship function is used with on_lookup: :relate on a belongs_to relationship. The client-supplied lookup value is passed directly to Ash.Query.filter/2 without casting to the attribute type, allowing a nested map where a scalar is expected to be treated as a filter predicate. This transforms a lookup for a specific record into a query for any record matching a condition. Additionally, the absence of Ash.Query.limit(1) allows Ash.read_one/2 to differentiate between no match, one match, or multiple matches, effectively turning comparison predicates into an oracle to recover the secret lookup value. Despite this, authorization policies on the destination read remain enforced.
Potential Impact
An attacker can forge relationships to records without knowing their exact identifiers and recover secret values used in lookups. However, authorization policies still apply, preventing unauthorized data access beyond what the policy allows. The impact is limited by the low CVSS score of 2.1 and the fact that the vulnerability requires local access (AV:L) and partial attack complexity.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should review usage of manage_relationship with on_lookup: :relate on belongs_to relationships and avoid passing untrusted nested map data as lookup values. Authorization policies remain effective and provide some protection.
CVE-2026-70395: CWE-943 Improper Neutralization of Special Elements in Data Query Logic in ash-project ash
Description
CVE-2026-70395 is a low-severity vulnerability in ash-project ash that allows an attacker to manipulate data query logic by forging a relationship to a record without naming it and recovering the secret lookup value. This occurs because client-supplied lookup values are not properly cast to the expected attribute type, enabling crafted nested maps to be interpreted as filter predicates. The vulnerability affects version 1.52.0-rc.11 and prior to 3.31.1. Authorization policies remain effective, limiting unauthorized data access.
CVSS v4.0
Score 2.1low
Affected software
cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability arises when the manage_relationship function is used with on_lookup: :relate on a belongs_to relationship. The client-supplied lookup value is passed directly to Ash.Query.filter/2 without casting to the attribute type, allowing a nested map where a scalar is expected to be treated as a filter predicate. This transforms a lookup for a specific record into a query for any record matching a condition. Additionally, the absence of Ash.Query.limit(1) allows Ash.read_one/2 to differentiate between no match, one match, or multiple matches, effectively turning comparison predicates into an oracle to recover the secret lookup value. Despite this, authorization policies on the destination read remain enforced.
Potential Impact
An attacker can forge relationships to records without knowing their exact identifiers and recover secret values used in lookups. However, authorization policies still apply, preventing unauthorized data access beyond what the policy allows. The impact is limited by the low CVSS score of 2.1 and the fact that the vulnerability requires local access (AV:L) and partial attack complexity.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, users should review usage of manage_relationship with on_lookup: :relate on belongs_to relationships and avoid passing untrusted nested map data as lookup values. Authorization policies remain effective and provide some protection.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-08-04T14:30:01.369Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a78c9e7bf8831d539149282
Added to database: 08/09/2026, 18:41:43 UTC
Last enriched: 08/09/2026, 19:00:36 UTC
Last updated: 08/09/2026, 19:46:51 UTC
Views: 5
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.