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

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2026-81643— Broken access control in AshGraphql subscription batcher applies authorization suppression to only the first notification

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 中的授权不当漏洞 ash_graphql 会向订阅者投递那些他们无权查看的记录的 GraphQL 订阅消息。 在 AshGraphql.Subscription.Batcher 中,do_send/5 解析批处理中的第一条通知,并通过 should_send?/1 对其进行过滤,该过滤器会丢弃错误代码为 forbidden(禁止访问)或 not_found(未找到),或未携带错误代码的结果,从而确保不向订阅者暴露未经授权的结果。然而,同一批次中剩余的通知是从进程字典中读取的,重新经过处理管道

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

I. Basic Information for CVE-2026-81643

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
Broken access control in AshGraphql subscription batcher applies authorization suppression to only the first notification
Source: CVE Program / CVE List V5
Vulnerability Description
Incorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see. In AshGraphql.Subscription.Batcher, do_send/5 resolves the first notification of a batch and filters it with should_send?/1, which drops results whose errors are coded forbidden or not_found or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach pubsub.publish_subscription/2, and the not is_nil(record) guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies should_send?/1 to the whole batch. 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:L/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 ~ e8e67f39add2ce0771e6db5f086afe68ba212c57 cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*

II. Public POCs for CVE-2026-81643

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

登录查看更多情报信息。

Other References for CVE-2026-81643 (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-82367 2.3 LOW Re-entrant synchronous publish in AshGraphql subscription batcher delivers one subscriber'
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-81643

No comments yet


Leave a comment