Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify action accepting array attribute with full-diff tracking
-
DeliveryCraft HTTP request with oversized array payload
-
ExploitSubmit request to paper-trailed create/update action
-
ExecutionTrigger O(n³) ListChange pairing loop
-
PersistSaturate CPU and exhaust memory
-
ImpactBlock concurrent requests, denying service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V2 - Validation and Business Logic Algorithmic complexity limits
|
| Exploitation Conditions | Three conditions must simultaneously hold: (1) the targeted Ash resource must be configured with full-diff change tracking enabled - this is a non-default, explicitly configured mode in ash_paper_trail and is the primary limiting factor; (2) the resource's create or update action must accept at least one attribute typed as |
| Impact | The vendor-assigned CVSS 4.0 score of 2.1 (AV:L/AC:L/AT:P/PR:N/UI:N/VA:L) reflects a narrow local-only threat model and low availability impact, but the description indicates the triggering input arrives via an application action - which in Ash Framework deployments is frequently exposed over a network interface (GraphQL, REST, or Phoenix LiveView). If actions are network-accessible, the effective attack vector is AV:N, materially elevating real-world risk beyond the vendor score. AT:P correctly captures that full-diff change tracking must be configured; deployments not using full-diff mode are entirely unaffected. The impact is not merely VA:L: the description states 'tens of seconds of CPU and multi-gigabyte allocations' per request, which constitutes a complete temporary denial of service on the affected process. No EPSS data was provided; given ash_paper_trail's niche footprint, broad opportunistic exploitation is unlikely, but targeted abuse by a malicious authenticated user is straightforward. No KEV listing and no public exploit code identified at time of analysis. Priority should be high for deployments where full-diff mode is active and array-type attributes are accepted on publicly or semi-publicly accessible actions. |
| Exploit ScenarioDerived | A user with permission to invoke a paper-trailed Ash create or update action submits a POST request carrying an array attribute populated with thousands of elements - no special tooling required, only a standard HTTP client. The |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Cubic-complexity denial of service in ash_paper_trail's full-diff list change builder allows any user permitted to invoke a paper-trailed Ash action with an accepted array attribute to exhaust backend CPU and memory. Versions 0.1.1 through 0.6.x are affected; the root cause is an O(n³) list accumulation pattern in AshPaperTrail.ChangeBuilders.FullDiff.ListChange where unbounded action input directly drives allocation. No public exploit has been identified and the issue is not in CISA KEV, but no rate-limiting or length check guards the vulnerable path, making the attack trivially reproducible by any user with action access.
RemediationAI
Upgrade ash_paper_trail to version 0.7.0 or later; the patch (commit e781f5d8840b07d57db99f9a4728298837d7b3a8) replaces the quadratic list accumulation with O(1) prepend followed by O(n) reversal, eliminating the vulnerability. Advisory: https://github.com/ash-project/ash_paper_trail/security/advisories/GHSA-7c66-59m8-723c. If immediate upgrade is not feasible, the most targeted compensating control is to disable full-diff change tracking for any resource that accepts large array attributes, switching to simple or no-diff mode - this removes the vulnerable code path entirely at the cost of reduced audit granularity for those resources. Alternatively, add explicit custom input validation at the action layer to cap the maximum length of accepted array attributes; this blocks oversized payloads before they reach the change builder, but requires per-action implementation and must be maintained as new array attributes are added. Do not rely on application-level timeouts alone, as partial allocation damage may already have occurred before a timeout fires.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ash_paper_trail is an Elixir library (CPE: cpe:2.3:a:ash-project:ash_paper_trail) for the Ash Framework that records versioned audit trails of resource changes. The vulnerability (CWE-407 - Inefficient Algorithmic Complexity) originates in the pair_value_tuples/2 function of AshPaperTrail.ChangeBuilders.FullDiff.ListChange. In Elixir and Erlang, the ++ operator concatenates lists by copying the entire left-hand list, making it O(n). Using acc ++ [tuple] inside an Enum.reduce/3 that iterates over n elements produces O(n²) list copying for that inner loop. Because this inner loop itself is called once per prior element in the outer pairing pass, total complexity reaches O(n³) in the number of array elements. The commit diff confirms the fix: replacing acc ++ [tuple] with prepend [tuple | acc] (O(1)) and a trailing Enum.reverse/1 (O(n)) reduces construction to O(n) total. This code path activates only under full-diff change tracking mode, which must be explicitly configured.
Know when Ash Paper Trail gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Action input is typically network-submitted in Ash deployments; AC:H for required full-diff configuration; A:H because tens-of-seconds CPU saturation constitutes a complete availability loss per request.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Inefficient Algorithmic Complexity vulnerability in ash-project ash_paper_trail allows a user who can submit a large array attribute to a paper-trailed create or update action to cause a denial of service through excessive CPU and memory use.
With full-diff change tracking, AshPaperTrail.ChangeBuilders.FullDiff.ListChange pairs each prior array element against the new list by rebuilding the remaining-elements accumulator with acc ++ [tuple] on every step, copying the growing list each time, so the pairing scales cubically in the array length. Nothing bounds the length and the value comes straight from action input, so one request carrying a large accepted {:array, _} attribute forces tens of seconds of CPU and multi-gigabyte allocations.
This issue affects ash_paper_trail: from 0.1.1 before 0.7.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Ash Paper Trail
View allCleartext exposure of nested sensitive fields in Ash Paper Trail audit logs (versions 0.3.0-0.6.x) allows any principal
Cleartext storage of sensitive Ash resource attributes in AshPaperTrail versions 0.1.1 through 0.6.x allows any actor wi
EUVD-2026-68144
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB