CVEvulnerability

CVE-2026-69659

5.9 MEDIUM Published 2026-08-09 Modified 2026-10-24 Official page ↗
Status
Analyzed
Published
2026-08-09
Last modified
2026-10-24
Assigner
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
CVSS 4.0 (6b3ad84c-e1a6-4bf7-a703-f496b71e49db)
5.9 MEDIUM — CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1 ([email protected])
5.5 MEDIUM — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-502

Description

Uncontrolled Resource Consumption vulnerability in ash-project ash allows an attacker to exhaust the memory of the node via a crafted keyset pagination cursor. Read actions with keyset pagination deserialize the client-supplied page[:after] or page[:before] cursor in decode_values/2 in lib/ash/page/keyset.ex, which base64-decodes the value and passes it to :erlang.binary_to_term/2 without bounding its size. The Erlang external term format supports zlib-compressed payloads, which the decoder inflates transparently, so a cursor of a few kilobytes can allocate tens of megabytes of heap in a single call. Ash itself only ever encodes cursors uncompressed, so the decoder accepts a term shape its encoder never produces. Concurrent requests aggregate these allocations and can terminate the node. This issue affects ash: from 1.17.0 before 3.31.1.

Affected configurations

• ash-hq ash framework (>= 1.17.0 < 3.31.1)

Related

Weakness · CWE (1)

  • CWE-502 Deserialization of Untrusted Data weakness

References