Read the docs
TI-2026-47745 Aliases CVE-2026-67579

Filter expression injection via forged keyset pagination cursor in Ash

Priority HIGH 68CWE-502Published · Updated

Key facts

Attack vector
Local
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
Present
Impact type
Code execution, SQL injection
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-502 and CWE-89.

Summary

Deserialization of Untrusted Data vulnerability in ash-project ash allows an unauthenticated attacker to inject a filter expression through a forged keyset pagination cursor, resulting in SQL injection or code execution depending on the data layer. Read actions with keyset pagination decode the client-supplied page[:after] or page[:before] cursor in decode_values/2 in lib/ash/page/keyset.ex using non_executable_binary_to_term/2 with [:safe]. That guard blocks new atoms, funs, and ports, but not a struct built from atoms already interned in a running Ash application, so a decoded %Ash.Query.Call{} expression survives and is spliced into the keyset filter as a comparison value in do_filters/4 and evaluated. Because the cursor bypasses the Ash.Expr macro, the runtime never applies the private?/public? gate that would otherwise reject it. On AshPostgres the injected fragment is inlined into the SQL query; on the ETS and Simple data layers it is evaluated in-process as an arbitrary function call. This issue affects ash: from 1.17.0 before 3.31.3.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00611 49th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed ash (ash-project): 3.31.3

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
No
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
ash-projectash1.17.0 to before 3.31.33.31.3Patch availableCNA
  • ash Vendorash-project Affected 1.17.0 to before 3.31.3 Fixed in 3.31.3 Patch available CNA

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:ash-hq:ash_framework:*:*:*:*:*:*:*:*1.17.0 to before 3.31.3Vulnerableash-project
  • cpe:2.3:a:ash-hq:ash_framework:*:*:*:*:*:*:*:* Versions 1.17.0 to before 3.31.3 Vulnerable ·ash-project

Remediation

  • Fix · CNA ash (ash-project) Fixed in 3.31.3

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-67579

References

  • TI-2026-26840 Ash Framework: Ash.Type.Module.cast_input/2 atom exhaustion via unchecked Module.concat allows BEAM VM crash CVSS 4.0HIGH 8.2
  • TI-2026-48952 Memory exhaustion via unbounded deserialization of keyset pagination cursors in Ash.Page.Keyset CVSS 4.0MEDIUM 5.9

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences