CVE-2026-82752

Ash string length constraints count graphemes, so a combining-mark string of any size passes max_length

MEDIUM
5.9
CVSS Score
Published: September 5, 2026 at 05:16 PM UTC
Updated: September 8, 2026 at 07:20 PM UTC
1 product affected across 1 vendorAsh

Using ash by ash-project?

Get instant alerts when new vulnerabilities affect ash - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.9
Exploit prediction
EPSS 0.2%
SSVC
PoC

Description

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

90%
0.10.0 ≤ v < 3.33.00.10.05848d5f4affe60fddd812222a18ada80c813b
Affected range stops below 3.33.0, so it looks safe — our inference, not a vendor statement

SSVC — Action Prioritization

SSVCPoCNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

5.9MEDIUMEEF
Vector?

Quick Info

StatusDEFERRED
CWE
CWE-1284

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card