Impact
The flaw resides in Ash.Type.Union.dump_to_native/2 for values stored with :map_with_tag storage. During serialization the function fails to enforce the configured tag, persisting any tag supplied by the caller. An attacker can therefore encode a value that belongs to one union member while carrying the tag of another member. When the value is later read, the library reconstructs the union using the supplied tag, leading to type confusion and allowing the attacker to bypass the intended member’s constraints and any logic that branches on the union tag.
Affected Systems
This vulnerability is present in the ash-project’s ash library from version 2.14.18 up to, but not including, 3.32.2.
Risk and Exploitability
The CVSS score of 2.1 indicates a low severity for this issue, and the EPSS score is not available indicating no known exploitation data. The vulnerability is not listed in the CISA KEV catalog. An attacker would need permission to write union values, which could be achieved via an exposed API or a privileged user, making the attack vector likely local or remote with authenticated access. While the score suggests limited risk, the potential to bypass validation and authorization remains a concern if the union values are used for critical controls.
OpenCVE Enrichment