CVE-2026-69659 in ash
Riassunto
di VulDB • 09/08/2026
Vulnerabilità di consumo non controllato delle risorse in ash-project ash consente a un attaccante di esaurire la memoria del nodo tramite un cursore di paginazione keyset costruito ad hoc.
Le operazioni di lettura con paginazione keyset deserializzano il cursore client-supplied page[:after] o page[:before] nella funzione decode_values/2 in lib/ash/page/keyset.ex, che decodifica base64 il valore e lo passa a :erlang.binary_to_term/2 senza limitarne la dimensione. Il formato dei termini esterni di Erlang supporta payload compressi con zlib, che il decoder decomprime trasparentemente; pertanto un cursore di pochi kilobyte può allocare decine di megabyte di heap in una singola chiamata. Ash stesso codifica sempre i cursori non compressi, quindi il decoder accetta una struttura del termine che il suo encoder non produce mai. Le richieste concorrenti aggregano queste allocazioni e possono terminare il nodo.
Questo problema interessa ash: dalla versione 1.17.0 alla 3.31.1 (esclusa).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.