CVE-2026-82736 Ash.Type.CiString validates length and match constraints before case folding, allowing constraint bypass
Attackers can bypass length and match constraints on case-insensitive strings by exploiting validation order, leading to invalid data storage.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-82736?
CVE-2026-82736 is a low-severity vulnerability in ash-project ash, published on 1 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
Incorrect Behavior Order: Validate Before Canonicalize vulnerability in ash-project ash lets an attacker store a case-insensitive string value that violates its length or match constraints.
Ash.Type.CiString.apply_constraints/2 (lib/ash/type/ci_string.ex) validated the max_length, min_length, and match constraints against the value as submitted, while the type case-folds the string (per its casing) for storage and comparison. Because validation ran before folding, an attacker can submit a value whose folded form breaks a constraint but whose original form passes: for example, against a match pattern requiring uppercase, an uppercase value that is stored lowercased persists a value the pattern rejects. The fix case-folds the value at the start of apply_constraints/2, so the constraints are checked against the form that is actually stored.
This issue affects ash: from 1.29.0-rc0 before 3.32.2.
Weakness: CWE-180
Which versions are affected by CVE-2026-82736?
1 open source package ship an affected version, including ash.
| Package | Affected | Fixed in |
|---|---|---|
ash Hex | From 1.29.0-rc0 | 3.32.2 |
How do I fix CVE-2026-82736?
Upgrade ash to 3.32.2 or later.
Is CVE-2026-82736 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-82736 exists.
Sources
Also known as EEF-CVE-2026-82736, GHSA-gg9w-7593-hxg9.