Improper Neutralization of Special Elements in Data Query Logic vulnerability in ash-project ash allows an attacker to forge a relationship to a record they cannot name, and to recover the secret value used to look it up.
When managerelationship is used with onlookup: :relate on a belongsto relationship, the client-supplied lookup value is passed to Ash.Query.filter/2 without being cast to the attribute type. A nested map submitted where a scalar is expected is therefore interpreted as a filter predicate rather than a literal, so a lookup for a specific record becomes a query for any record matching a condition. The same path omits Ash.Query.limit(1), leaving Ash.readone/2 able to distinguish no match from one match from several, which turns comparison predicates into an oracle for the lookup value. Authorization is unaffected; the destination read policy still applies.
This issue affects ash: from 1.52.0-rc.11 before 3.31.1.
{
"cwe_ids": [
"CWE-943"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/70xxx/CVE-2026-70395.json",
"cna_assigner": "EEF",
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "1.52.0-rc.11"
},
{
"fixed": "3.31.1"
},
{
"introduced": "571c138140e71cea24005189f45d7a63c8d2ed20"
},
{
"fixed": "09f42593035bceb0f6153dd7ee45cc49d108300a"
}
],
"source": "AFFECTED_FIELD"
},
{
"extracted_events": [
{
"introduced": "1.52.0-rc.11"
},
{
"fixed": "3.31.1"
}
],
"source": "CPE_FIELD"
},
{
"extracted_events": [
{
"introduced": "1.52.0-rc.11"
},
{
"fixed": "3.31.1"
}
],
"source": "DESCRIPTION"
}
]
}