Answer in brief
CVE-2026-77454 records a Unknown severity vulnerability in exists/2 predicate silently dropped on limited relationships with a parent() filter in AshSql. The current sources do not mark it as known exploited. The current feed maps ash-project/ash_sql (generic), ash-project/ash_sql (generic). Check affected ranges and fixed versions before updating.
Analysis pending evidence review
HOL Guard separates source facts from reviewed analysis. See the methodology.
A CVSS score is not reported in the current record. The current sources do not mark it as known exploited. Treat this as a source-backed prioritization signal, not a statement about your environment.
Analysis status
Analysis pending evidence review
Factual feed record only; HOL analysis is not approved for indexing. Read the methodology.
The current feed maps ash-project/ash_sql (generic), ash-project/ash_sql (generic). Check affected ranges and fixed versions before updating.
| Package | Affected range | Fixed version |
|---|---|---|
| ash-project/ash_sqlgeneric | >=0.4.1 <0.7.1 | 0.7.1 |
| ash-project/ash_sqlgeneric | >=e26a63b29bd7501505fafd726f14262cdc3b6629 <865fdd4e5e70724a23b19c048e6768c31d2209ab | 865fdd4e5e70724a23b19c048e6768c31d2209ab |
Published upstream
Aug 30, 2026
Evidence: source:cvelist:source_dates:source-dates:recordSource modified
Aug 30, 2026
Evidence: source:cvelist:source_dates:source-dates:recordFirst seen by HOL
Aug 30, 2026
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.
Quoted source text, attributed separately from HOL analysis.