Skip to main content

AshPaperTrail CVE-2026-77831

| EUVDEUVD-2026-68144 LOW
Inefficient Algorithmic Complexity (CWE-407)
2026-08-30 EEF
2.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify action accepting array attribute with full-diff tracking
  2. Delivery
    Craft HTTP request with oversized array payload
  3. Exploit
    Submit request to paper-trailed create/update action
  4. Execution
    Trigger O(n³) ListChange pairing loop
  5. Persist
    Saturate CPU and exhaust memory
  6. Impact
    Block 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 {:array, _} with no server-enforced length cap; and (3) the attacker must have permission to invoke that specific action - the CVSS PR:N rating indicates no formal authentication is required, but Ash Framework action policies may restrict access in practice. What limits exploitation: deployments using simplified diff, no-diff, or default tracking modes are entirely unaffected; Ash action policies that require authentication or role-based authorization reduce the attacker pool; and deployments where actions are not exposed over a network interface reduce the attack surface to local or internal users only. The vendor-assigned AV:L vector implies a local-only threat model - teams should independently verify whether their application exposes vulnerable actions over a network.

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 ListChange builder begins O(n³) pairing work, holding CPU at near-100% for tens of seconds and allocating multiple gigabytes of heap, rendering the BEAM process unresponsive to concurrent requests until the computation completes or the process is killed. No public proof-of-concept code has been identified, but the attack is trivially constructable from the public description alone.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAI

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

ash_paper_trail 0.1.1 <0.7.0
ash_paper_trail 449cd2a93416853066378fa61c715e89f80dc854 <e781f5d8840b07d57db99f9a4728298837d7b3a8

Affected Packages

euvd ash_paper_trail fix: 0.7.0

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

Vendor (EEF) PRIMARY 2.1 LOW
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
vuln.today AI 5.9 MEDIUM

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.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Rare
niche Elixir/Ash Framework audit trail library
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity LOW
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Low
Technical Impact
Partial

Priority Score

10
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +10
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy