Description
Improper Input Validation vulnerability in ash-project ash allows an attacker to persistently deny reads of a record by storing a non-version-7 UUID in an Ash.Type.UUIDv7 attribute.

Ash.Type.UUIDv7.cast_input/2 accepts any well-formed UUID string, including non-version-7 UUIDs, and stores it as a 16-byte binary. On read, cast_stored/2 (lib/ash/type/uuid_v7.ex) routes the stored binary back through cast_input/2, which since an input-validation tightening in v3.6.3 matches only version-7 (and optionally version-4) 16-byte binaries and otherwise expects a 36-character string. A stored non-v7 16-byte binary matches neither clause and returns :error, so every later read of that record fails. An attacker able to set such an attribute poisons the row permanently. The fix decodes any 16-byte stored binary directly in cast_stored/2.

This issue affects ash: from 3.6.3 before 3.32.2.
Published: 2026-09-01
Score: 5.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This vulnerability is an improper input validation error that allows any well‑formed UUID—including non‑version‑7 values—to be stored in an Ash.Type.UUIDv7 attribute. The stored 16‑byte binary is later re‑cast by the library, which only accepts version‑7 (or optionally version‑4) binaries or a 36‑character string. A non‑v7 binary matches neither clause, causing cast_stored to return an error and all subsequent reads of that record to fail. The result is a permanent corruption of the record’s ability to be retrieved, effectively a persistent denial of service for that data. No remote code execution or data exfiltration is possible, but the system’s availability for that record is compromised.

Affected Systems

The affected product is the ash project’s Ash framework. Versions from 3.6.3 up to, but not including, 3.32.2 are impacted. Users of any downstream application that stores UUIDv7 attributes in Ash must verify their version and apply the fix.

Risk and Exploitability

With a CVSS score of 5.9, the vulnerability presents moderate severity. The EPSS score is not available, and the issue is not listed in the CISA KEV catalog. The attack vector is likely local or remote write access to a model that includes an Ash.Type.UUIDv7 field. Once an attacker stores an invalid UUID, read attempts will fail indefinitely because the corruption persists in the database. The risk is primarily availability related, with no direct confidentiality or integrity impact.

Generated by OpenCVE AI on September 1, 2026 at 04:21 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update Ash to version 3.32.2 or later, which corrects the cast_stored function to decode any 16‑byte binary directly.
  • If an immediate upgrade is not possible, restrict the write access to the UUIDv7 attribute so that only valid UUIDv7 (or optionally UUIDv4) values can be stored, either by adding application‑level validation or by using database constraints.
  • Deploy a monitoring script to identify records that return read errors, and permanently restore them by re‑inserting a valid UUID value once the application is patched or the record is fixed.

Generated by OpenCVE AI on September 1, 2026 at 04:21 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 01 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
Description Improper Input Validation vulnerability in ash-project ash allows an attacker to persistently deny reads of a record by storing a non-version-7 UUID in an Ash.Type.UUIDv7 attribute. Ash.Type.UUIDv7.cast_input/2 accepts any well-formed UUID string, including non-version-7 UUIDs, and stores it as a 16-byte binary. On read, cast_stored/2 (lib/ash/type/uuid_v7.ex) routes the stored binary back through cast_input/2, which since an input-validation tightening in v3.6.3 matches only version-7 (and optionally version-4) 16-byte binaries and otherwise expects a 36-character string. A stored non-v7 16-byte binary matches neither clause and returns :error, so every later read of that record fails. An attacker able to set such an attribute poisons the row permanently. The fix decodes any 16-byte stored binary directly in cast_stored/2. This issue affects ash: from 3.6.3 before 3.32.2.
Title Ash.Type.UUIDv7 accepts non-v7 UUIDs that then fail to load, causing persistent denial of service
First Time appeared Ash-project
Ash-project ash
Weaknesses CWE-20
CPEs cpe:2.3:a:ash-project:ash:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash
References
Metrics cvssV4_0

{'score': 5.9, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-09-01T03:26:23.035Z

Reserved: 2026-08-31T00:59:10.002Z

Link: CVE-2026-82738

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-01T04:18:03.387

Modified: 2026-09-01T04:18:03.387

Link: CVE-2026-82738

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-01T04:30:03Z

Weaknesses
  • CWE-20

    Improper Input Validation