VDB
Sign up

EEF-CVE-2026-82736

Ash.Type.CiString validates length and match constraints before case folding, allowing constraint bypass

Quick fix

EEF-CVE-2026-82736 — ash: upgrade to the fixed version with the command below.

mix deps.update ash

Details

## Summary

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.

Are you affected?

Enter the version of the package you're using.

Affected packages

Hex/ash
Introduced in: 1.29.0-rc0Fixed in: 3.32.2
Fixmix deps.update ash

References