ash is vulnerable to Denial of Service (DoS)
82
High Risk
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.
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.
ash is vulnerable to Denial of Service (DoS) in versions 3.4.74 - 3.34.2.
Upgrade the ash library to the patch version.
Connect your repositories to instantly see whether vulnerable or malicious packages exist in your codebase.
Free. No credit card required.

I consent to receiving marketing communications based on Aikido’s Privacy Policy.
SOC 2Compliant
ISO 27001Compliant
ISO 42001Compliant© All Intel data is openly available and commercially licensed.