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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-82367— Re-entrant synchronous publish in AshGraphql subscription batcher delivers one subscriber's records to another's topic

Quick assessment

Affected
ash-project ash_graphql
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_graphql 中的“数据元素暴露给错误会话”漏洞,可能导致一个订阅(subscription)的已解析记录被错误地发送给另一个订阅者的主题。 具体机制如下: 通过 从进程字典中读取已解析的批次数据,随后无条件地删除该键值。这一做法仅在库自身拥有的任务(task)中是安全的。然而,在 和 回退模式下, 会在发布方进程的上下文中内联执行。如果外层 内部的解析器触发了另一个同步的 Ash 通知,则内层调用会在 键下找到外层运行遗留的值,并将其作为自己的结果发布到内层主题——而该主题对应的是另一个具有不同操作者(

CVSS 2.3 · Low
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-82367

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
Re-entrant synchronous publish in AshGraphql subscription batcher delivers one subscriber's records to another's topic
Source: CVE Program / CVE List V5
Vulnerability Description
Exposure of Data Element to Wrong Session vulnerability in ash-project ash_graphql can deliver one subscription's resolved records to a different subscriber's topic. AshGraphql.Subscription.Batcher.do_send/5 reads the resolved batch from the process dictionary via Process.get(:batch_resolved) and then unconditionally deletes it. That is sound only inside a task the library owns. On the :backpressure_sync and :noproc fallbacks do_send/5 runs inline in the publishing caller's process, so if a resolver inside an outer do_send/5 triggers another synchronous Ash notification, the inner call finds the outer run's value still under :batch_resolved, adopts it as its own result, and publishes it to the inner topic, a different subscription document with a different actor and tenant. It then deletes the key, so the outer run publishes nothing. The key is not namespaced by run, so records cannot be told apart. The fix saves, clears, and restores :batch_resolved around each run. This issue affects ash_graphql: from 1.4.0 before 1.11.0.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/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_graphql 1.4.0 ~ 1.11.0 cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*
ash-project ash_graphql 3cb2c9870d050c7c4bba6c211aaed97d732f7e81 ~ b798ef5288664a0261990b19765558f168b718fb cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*

II. Public POCs for CVE-2026-82367

# 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-82367

登录查看更多情报信息。

Other References for CVE-2026-82367 (4)

Same Patch Batch · ash-project · 2026-08-30 · 20 CVEs total

CVE-2026-81636 8.7 HIGH Query-complexity limit bypass via first/last pagination arguments in AshGraphql enables de
CVE-2026-78699 7.2 HIGH rename_tenant returns :ok on a failed rename, enabling cross-tenant access in AshPostgres
CVE-2026-80223 7.1 HIGH Cross-tenant subscription disclosure in AshGraphql authorizes notifications in memory with
CVE-2026-78693 6.9 MEDIUM Incomplete redaction re-attaches the original error path in AshGraphql, leaking internal f
CVE-2026-81633 6.9 MEDIUM Unhandled KeyError in AshGraphql relay node resolution crashes queries via an unknown type
CVE-2026-77454 5.9 MEDIUM exists/2 predicate silently dropped on limited relationships with a parent() filter in Ash
CVE-2026-81319 5.9 MEDIUM Unsafe deserialization of decrypted terms enables node DoS in AshCloak
CVE-2026-75847 5.9 MEDIUM Sensitive attribute values stored in a non-sensitive public changes map in AshPaperTrail
CVE-2026-78228 5.9 MEDIUM Unbounded handle_error recursion enables denial of service in AshOban triggers
CVE-2026-78038 5.9 MEDIUM Job argument injection via :args overrides primary_key and tenant in AshOban
CVE-2026-77970 5.9 MEDIUM Sensitive fields nested in embedded values are not redacted in AshPaperTrail versions
CVE-2026-81643 2.3 LOW Broken access control in AshGraphql subscription batcher applies authorization suppression
CVE-2026-80227 2.1 LOW SQL string_trim removes only spaces, diverging from in-memory trimming in AshSql
CVE-2026-81316 2.1 LOW Same-named aggregates with differing filters are conflated in AshSql
CVE-2026-78691 2.1 LOW Unescaped backslash allows LIKE wildcard injection in AshSql string search
CVE-2026-81322 2.1 LOW Cloaked plaintext leaks through a non-sensitive action argument in AshCloak
CVE-2026-81318 2.1 LOW Distinct-query aggregate drops the tenant schema prefix, leaking across tenants in AshSql
CVE-2026-77846 2.1 LOW JSON path injection via unescaped get_path segments in AshSqlite
CVE-2026-77831 2.1 LOW Algorithmic-complexity denial of service in AshPaperTrail full-diff list tracking

IV. Related Vulnerabilities

V. Comments for CVE-2026-82367

No comments yet


Leave a comment