Intel

AIKIDO-2026-597857

ash is vulnerable to Denial of Service (DoS)

Denial of Service (DoS)CVE-2026-94201 Published 6 days ago

82

High Risk

This Affects:

ELIXIRash
3.4.74 - 3.34.2
Fixed in 3.34.3
Are you affected? Scan for Free

TL;DR

Ash stores :atom typed attributes as strings and compares them as strings, but filtering such an attribute coerces the comparison value through Ash.Type.Atom. That type defines no coerce/2 callback, so coercion falls back to cast_input/2, which calls String.to_atom/1 whenever the attribute carries the unsafe_to_atom?: true constraint. Filtering a public, filterable atom attribute such as AshPaperTrail's version_action_name with externally supplied strings interns a new permanent atom for every distinct value, exhausting the BEAM's capped, never garbage collected atom table and crashing the node. The fix adds a coerce/2 that keeps the comparison value as a string instead of interning an atom.

Who does this affect?

You are affected if you are using a version that falls within the vulnerable range and you expose a filterable :atom attribute configured with unsafe_to_atom?: true to externally supplied filter input.

Background info

ash is vulnerable to Denial of Service (DoS) in versions 3.4.74 - 3.34.2.

How to fix this

Upgrade the ash library to the patch version.

Are You Affected?

Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.

Free. No credit card required.

Aikido Platform