CVE-2026-77454

exists/2 predicate silently dropped on limited relationships with a parent() filter in AshSql

MEDIUM
5.9
CVSS Score
Published: August 30, 2026 at 12:01 PM UTC
Updated: September 1, 2026 at 09:31 PM UTC
1 product affected across 1 vendorAshSql

Using ash_sql by ash-project?

Get instant alerts when new vulnerabilities affect ash_sql - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.9
Exploit prediction
EPSS 0.2%
SSVC
PoC

Description

Incorrect Authorization vulnerability in ash-project ash_sql allows a caller to bypass a scoping or authorization filter expressed as exists/2 over a relationship that declares both a limit (or from_many?) and a parent(...)-referencing filter or sort. AshSql.Join.related_query/3 skips the caller-supplied exists predicate for such relationships and delegates it to limit_from_many/5. When the relationship's own filter or sort references parent(...), limit_from_many/5 takes a branch that drops both the limit and the predicate, emitting a bare correlated EXISTS with no predicate. The check then matches any record that has any related row. Most severely, when the expression backs a policy (for example authorize_if expr(exists(memberships, user_id == ^actor(:id)))), the actor-scoping condition disappears and the policy passes for any actor with any related row. This issue affects ash_sql: from 0.4.1 before 0.7.1.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0.4.1 ≤ v < 0.7.10.4.1e26a63b29bd7501505fafd726f14262cdc3b6629
Vendor states this is fixed in 865fdd4e5e70724a23b19c048e6768c31d2209ab (fixed)
Affected range stops below 0.7.1, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

SSVC — Action Prioritization

SSVCPoCNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

5.9MEDIUMEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-863

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card