CVE-2026-77831
LowCVSS 2.1Summary
The ash_paper_trail library (ash-project) has an inefficient algorithmic complexity vulnerability. A user who can submit a large array attribute to a paper-trailed create or update action can cause a denial of service through excessive CPU and memory use. This results from cubic scaling of list comparison operations in full-diff mode.
Risk Assessment
An attacker can overload the server, causing service unavailability. The vulnerability affects versions from 0.1.1 before 0.7.0.
Recommendation
Update ash_paper_trail to version 0.7.0 or later, which includes the fix. Limit the maximum size of submitted arrays.
Other vulnerabilities in ash_paper_trail
See all- CVE-2026-77970Medium
The ash_paper_trail library (ash-project) has a cleartext storage of sensitive information vulnerability. An attacker with read access to the generated version resource can recover sensitive values nested inside embedded resources, unions, or lists. The sensitive_attributes :redact and :ignore only act on top-level attributes, not descending into nested structures.
- CVE-2026-75847Medium
The ash_paper_trail library (ash-project) has a cleartext storage of sensitive information vulnerability. An attacker with read access to the generated version resource can recover the plaintext of sensitive? attributes. These values are stored in the changes map, which is public and not marked as sensitive, so they are returned by the default read action and printed in logs and error messages.
Original NVD description (English source)
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.

