All vulnerabilities
CVE-2026-114214GHSA-g2h4-xp57-q863

Loading a through relationship with a limit of 1 in Ash ignores the through path and returns unrelated destination records

ash-project ash
CVSS
6.0Medium
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in3.37.1Fixed versionCVE List
Published25 Oct 2026Updated 25 Oct 2026CVE List

What fixes it

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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.

Text from GitHub Advisory Database

Affected versions 3

  • ashaffected: 3.24.0 before 3.37.1CVE List
  • ashaffected: 24f41e23dcbd9d07cde270a8141490e8f79251f5 before e37463307304b26bc8fd606322e5c4d8f7f060e5CVE List
  • ash, erlang>= 3.24.0, < 3.37.1GitHub

References 5