PT-2026-86428 · Ash · Ash

CVE-2026-82752

·

Published

2026-09-05

·

Updated

2026-09-05

CVSS v4.0

5.9

Medium

VectorAV: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
Name of the Vulnerable Software and Affected Versions ash versions 0.10.0 through 3.32.9
Description Improper validation of input quantity allows an attacker to store values of arbitrary size in attributes that should be bounded by length constraints. The software uses Elixir's String.length/1 function to measure string length in Ash.Type.String (specifically within the apply constraints/2 function), Ash.Resource.Validation.StringLength, and the string length expression function. Because this method counts Unicode graphemes—which can contain an unbounded number of combining marks—a single grapheme can consist of megabytes of data while still satisfying a small max length constraint. When the underlying data layer (such as ETS, Mnesia, or Postgres text columns) does not impose its own independent limit, the entire value is persisted, potentially allowing an attacker to exhaust storage. Additionally, a discrepancy exists between the grapheme-based counting used by the application and the codepoint-based counting used by the storage layer, which may lead to data being rejected or truncated by the database column.
Recommendations Update ash to version 3.33.0 or later.

Exploit

Fix

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-82752
GHSA-CWJV-574P-59F6

Affected Products

Ash