PT-2026-71309

CVE-2026-67579

·

Published

2026-08-12

·

Updated

2026-08-12

Description by

CVSS 4.0
7.5
High
MetricsAV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Name of the Vulnerable Software and Affected Versions ash versions 1.17.0 through 3.31.2
Description An unauthenticated attacker can inject a filter expression using a forged keyset pagination cursor. This occurs because read actions with keyset pagination decode client-supplied page[:after] or page[:before] cursors in the decode values/2 function within lib/ash/page/keyset.ex using non executable binary to term/2 with [:safe]. While this guard blocks new atoms, funs, and ports, it does not block structs built from atoms already interned in a running application. Consequently, a decoded %Ash.Query.Call{} expression can be spliced into the keyset filter as a comparison value in do filters/4 and evaluated. Since the cursor bypasses the Ash.Expr macro, the runtime fails to apply the private?/public? gate. The impact varies by data layer: AshPostgres allows SQL injection, while ETS and Simple data layers allow the expression to be evaluated in-process as an arbitrary function call.
Recommendations Update ash to version 3.31.3 or later.
Exploitability
Exploit
Fix
Impacts
Vendors
Affected products
Related identifiers
GHSA-3GQ3-9XM3-C8V3
Found an issue in the description? Have something to add? Feel free to write us 👾