Skip to main content

ash_sql CVE-2026-77454

| EUVDEUVD-2026-68198 MEDIUM
Incorrect Authorization (CWE-863)
2026-08-30 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
5.9
CVSS 4.0 · Vendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Share

Severity by source

Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db) PRIMARY
5.9 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
vuln.today AI
5.9 MEDIUM

Network-reachable via application API; high complexity due to specific dual-condition relationship configuration requirement; low privileges as attacker must be an authenticated actor with any related row.

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

Primary rating from Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db).

CVSS VectorVendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

4
CVE Published
Aug 31, 2026 - 10:50 cve.org
MEDIUM 5.9
Patch available
Aug 30, 2026 - 14:01 EUVD
Source Code Evidence Fetched
Aug 30, 2026 - 12:36 vuln.today
Analysis Generated
Aug 30, 2026 - 12:36 vuln.today

DescriptionCVE.org

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.

AnalysisAI

Authorization policy bypass in ash_sql (versions 0.4.1 through 0.7.0) silently drops the caller-supplied exists/2 predicate when a relationship combines a limit or from_many? declaration with a parent(...)-referencing filter or sort. …

Unlock full vulnerability intelligence

  • Risk assessment & exploitation conditions
  • Attack chain visualization
  • Remediation with exact patch versions
  • Threat intelligence from 22 sources
  • Personal watchlist & email alerts

Free forever · No credit card required

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata

Recon
technique details hidden
Delivery
technique details hidden
Exploit
technique details hidden
Install
technique details hidden
C2
technique details hidden
Execute
technique details hidden
Impact
technique details hidden

Vulnerability AssessmentAI

Exploitation Exploitation requires all three conditions to be simultaneously present: (1) the application uses ash_sql versions 0.4.1 through 0.7.0; (2) a relationship used in an `exists/2` policy expression is configured with both a limit (`:limit` option or `from_many?: true`) AND a `:filter` or `:sort` option that references `parent(...)`; (3) the attacker is an authenticated application actor who has at least one row in the related resource - any row, not necessarily one satisfying the intended actor-scoping predicate. … Additional conditions and limiting factors are described in the full assessment.
Risk Assessment The CVSS 4.0 score of 5.9 Medium (AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N) is in partial tension with the vulnerability's real-world attack surface: while CVSS designates AV:L (local), ash_sql is a library embedded in web applications that typically expose resources over network APIs, making the effective attack surface for end users network-reachable rather than strictly local - teams should verify the AV:L designation with ash-project maintainers. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in.
Exploit Scenario Full exploit scenario with step-by-step reproduction available after sign-in.
Remediation Upgrade ash_sql to version 0.7.1 or later, which applies the caller-supplied `exists/2` filter predicate in the `limit_from_many/5` parent-expression branch before emitting the EXISTS subquery; the fix is documented in commit 865fdd4e5e70724a23b19c048e6768c31d2209ab at https://github.com/ash-project/ash_sql/commit/865fdd4e5e70724a23b19c048e6768c31d2209ab and the full advisory at https://github.com/ash-project/ash_sql/security/advisories/GHSA-8v9m-8pxv-738c. … Detailed patch versions, workarounds, and compensating controls in full report.

Threat intelligence, references, and detailed analysis are available after sign-in.

Share

CVE-2026-77454 vulnerability details – vuln.today

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