CVE-2026-82752 json
Ash string length constraints count graphemes, so a combining-mark string of any size passes max_length
published 2mo ago modified 2mo ago also EEF-CVE-2026-82752 , EUVD-2026-72014 , GHSA-cwjv-574p-59f6
- cvss
- 5.9
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 7%
- public exploits
- 0
- none known
Summary
Improper Validation of Specified Quantity in Input vulnerability in ash-project ash allows an attacker to store a value of arbitrary size in an attribute whose length constraint should bound it.
Ash measures string length with Elixir's String.length/1, which counts Unicode graphemes, in the max_length and min_length constraints of Ash.Type.String (apply_constraints/2 in lib/ash/type/string.ex), in Ash.Resource.Validation.StringLength, and in the string_length expression function. A grapheme carries an unbounded number of combining marks, so a base character followed by a million combining acute accents is one grapheme and megabytes of data, and satisfies max_length: 2. Where the data layer imposes no independent limit (ETS, Mnesia, or a Postgres text column) the whole value is persisted, so an attacker can write an entire request body into an attribute declared with a small maximum and grow storage without bound.
The counting unit also disagrees with the storage layer, which counts codepoints rather than graphemes, so a value accepted by the constraint can still be rejected or truncated by the column. A Postgres varchar(n) column bounds the value itself and is not exposed.
This issue affects ash: from 0.10.0 before 3.33.0.
Patch / fix
- hex ash 3.33.0
- ash-project ash 3.33.0
Is CVE-2026-82752 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-11).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 5.9 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 5.9 | CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | ash | >=0.10.0, <3.33.0 |
3.33.0 |
Affected products
- ash-project ash
Classification
- Weakness
-
- CWE-1284 Improper Validation of Specified Quantity in Input
References
-
github.com
/ash-project/ash/commit/a64cab49b8886503e6b7c7b211d83c475aac48ca
patch
-
github.com
/ash-project/ash/commit/cdbf4c4da6bda5f6f139078f01a64320b595216d
patch
-
github.com
/ash-project/ash/security/advisories/GHSA-cwjv-574p-59f6
vendor-advisory, related, advisory
-
cna.erlef.org
/cves/CVE-2026-82752.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-82752
related
-
hex.pm
/packages/ash
package
Sources
- CVE List CVE-2026-82752
- NVD CVE-2026-82752
- OSV EEF-CVE-2026-82752
- Maintainer advisory GHSA-cwjv-574p-59f6
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of ash-project/ash published their own advisory on GitHub. Reviewed sources take precedence over it.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.