Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-114214— Loading a through relationship with a limit of 1 in Ash ignores the through path and returns unrelated destination records

Quick assessment

Affected
ash-project ash
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

ash 项目中的 ash 库存在一个授权错误漏洞:攻击者可以通过“通过关系”(through relationship)读取与源记录无关的目标记录。 当满足以下任一条件时,该漏洞会被触发: 1. 声明为 且使用 的关系,在加载单条记录时设置了 ; 2. 未排序的 且使用 的关系,在加载时设置了 。 在上述情况下, 文件中的 函数会错误地选择一条读取路径,该路径在读取目标记录时未施加任何将目标与源记录关联的过滤条件。因此,加载操作会返回按排序规则的第一条目标记录,或者在存在偏移(offset)时返回任意其他记录。虽然

CVSS 6.0 · Medium

Affected Version Matrix 2

VendorProduct Version RangeStatus
ash-project ash 3.24.0< 3.37.1 affected
24f41e23dcbd9d07cde270a8141490e8f79251f5< e37463307304b26bc8fd606322e5c4d8f7f060e5 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-114214

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Loading a through relationship with a limit of 1 in Ash ignores the through path and returns unrelated destination records
Source: CVE Program / CVE List V5
Vulnerability 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.
Source: CVE Program / CVE List V5
CVSS Information
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
Source: CVE Program / CVE List V5
Vulnerability Type
授权机制不正确
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
ash-project ash 3.24.0 ~ 3.37.1 cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
ash-project ash 24f41e23dcbd9d07cde270a8141490e8f79251f5 ~ e37463307304b26bc8fd606322e5c4d8f7f060e5 cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*

II. Public POCs for CVE-2026-114214

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-114214

请登录查看更多情报信息。

Other References for CVE-2026-114214 (5)

Same Patch Batch · ash-project · 2026-10-25 · 3 CVEs total

CVE-2026-115627 6.0 MEDIUM AshPostgres ignores attribute multitenancy on the join resource when loading many_to_many
CVE-2026-115635 6.0 MEDIUM AshPostgres returns another tenant's record for a skipped upsert when return_skipped_upser

IV. Related Vulnerabilities