---
id: CVE-2026-114214
title: >-
  Loading a through relationship with a limit of 1 in Ash ignores the through
  path and returns unrelated destination records
summary: >-
  Incorrect Authorization vulnerability in ash-project ash allows a client to
  read destination records unrelated to the source record through a through
  relationship.


  When a has_many relationship declared with through: was loaded for a sin…
severity: medium
cvss: 6
cvssVector: 'CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'
cvssSource: cna
cwe:
  - CWE-863
vendor: ash-project
product: ash
affected:
  - ash >= 3.24.0 < 3.37.1
  - >-
    ash-project/ash >= 24f41e23dcbd9d07cde270a8141490e8f79251f5 <
    e37463307304b26bc8fd606322e5c4d8f7f060e5
published: '2026-10-25'
updated: '2026-10-25'
sourceUpdated: '2026-10-25T19:47:30.612Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-114214'
references:
  - url: 'https://github.com/ash-project/ash/security/advisories/GHSA-g2h4-xp57-q863'
    label: >-
      Loading a `through` relationship on a single record with `limit: 1`
      ignores the through path and returns arbitrary destination records
  - url: 'https://cna.erlef.org/cves/CVE-2026-114214.html'
    label: EEF CNA record for CVE-2026-114214
  - url: 'https://osv.dev/vulnerability/EEF-CVE-2026-114214'
    label: OSV record EEF-CVE-2026-114214
  - url: >-
      https://github.com/ash-project/ash/commit/24f41e23dcbd9d07cde270a8141490e8f79251f5
    label: Introducing commit 24f41e2 in ash-project/ash
  - url: >-
      https://github.com/ash-project/ash/commit/e37463307304b26bc8fd606322e5c4d8f7f060e5
    label: Fix commit e374633 in ash-project/ash
tags:
  - cve.org
ingestedAt: '2026-10-25T22:08:29.762Z'
---

## Overview

Incorrect Authorization vulnerability in ash-project ash allows a client to read destination records unrelated to the source record through a through relationship.

When a has_many relationship declared with through: was loaded for a single record with a limit of 1, or an unsorted has_one through relationship was loaded with a limit of 1, lateral_join?/4 in lib/ash/actions/read/relationships.ex chose the path that reads the destination without any filter linking it to the source. The load returned the first destination record by sort, or any other record with an offset. The read still runs the destination's policies but carries the relationship as accessing_from, so a client paging such a field (for example teachers(limit: 1, offset: n) through AshGraphql) can enumerate destination records that policies allow only when reached through that relationship.

This issue affects ash: from 3.24.0 before 3.37.1.

## Affected

- `ash >= 3.24.0 < 3.37.1`
- `ash-project/ash >= 24f41e23dcbd9d07cde270a8141490e8f79251f5 < e37463307304b26bc8fd606322e5c4d8f7f060e5`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
