Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain read access to version resource table
-
DeliveryQuery stored version records for targeted resource
-
ExploitParse JSON version payload
-
ExecutionLocate non-sensitive parent attribute containing embedded struct
-
PersistExtract cleartext sensitive field values (tokens, passwords)
-
ImpactLeverage recovered credentials
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V14 - Data Protection Encrypted storage of sensitive data
|
| Exploitation Conditions | Exploitation requires three concurrent conditions: (1) the application runs ash_paper_trail 0.3.0-0.6.x; (2) at least one Ash resource tracked by ash_paper_trail defines a non-sensitive top-level attribute whose type is an embedded resource, union, or array containing one or more attributes marked |
| Impact | The CVSS 4.0 vector (AV:L/AC:L/AT:P/PR:N/UI:N/VC:H) scores 5.9 Medium, reflecting that exploitation is local in attack vector and requires a specific configuration precondition (AT:P): the target application must define at least one embedded resource or union type carrying |
| Exploit ScenarioDerived | An attacker who has obtained read access to the application's version/audit table - through a compromised read-only database credential, an overprivileged application role, or direct database access - queries stored version records for resources that accept credential embeds. Because the parent attribute is not marked sensitive, the full embedded structure including tokens or passwords is stored in plaintext JSON, allowing the attacker to extract valid credentials directly from the audit log without interacting with the live application. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Cleartext exposure of nested sensitive fields in Ash Paper Trail audit logs (versions 0.3.0-0.6.x) allows any principal with read access to the version resource table to recover credentials, tokens, or other sensitive values stored inside embedded resources, union types, or lists. The redaction logic in maybe_redact_changes/3 and AshPaperTrail.Resource.Changes.CreateNewVersion only inspects top-level resource attributes for the sensitive? flag, never recursing into nested structures, so a parent attribute that is not itself marked sensitive silently passes its embedded sensitive children through to the version table in cleartext. No public exploit has been identified and the issue is not listed in CISA KEV; a vendor-released patch is available at version 0.7.0.
RemediationAI
Upgrade ash_paper_trail to version 0.7.0 or later, which introduces recursive redaction of sensitive fields in embedded resources, union types, and arrays via the new redact_dumped_value/4 helper. The vendor security advisory is at https://github.com/ash-project/ash_paper_trail/security/advisories/GHSA-v645-6jm6-cgpj and the fixing commit is https://github.com/ash-project/ash_paper_trail/commit/0cd4acfe7f48397673d8594fb5e2cd0f1bda6e40. As an interim workaround prior to upgrading, teams should audit all Ash resources tracked by ash_paper_trail and identify any attribute that accepts an embedded resource or union containing sensitive? fields; moving the entire parent attribute to the :redact or :ignore list in sensitive_attributes will prevent the parent from being stored at all, which eliminates the leakage path at the cost of losing audit visibility for that attribute. Additionally, restrict read access to the version resource table to the minimum required principals, reducing the exposure window for already-stored cleartext data. Note that already-persisted version records containing leaked sensitive values are not retroactively redacted by the upgrade and should be reviewed and purged if compliance obligations require.
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:*:*:*:*:*:*:*:*) built on the Ash Framework that records audit trail versions of resource state changes. CWE-312 (Cleartext Storage of Sensitive Information) is the precise root cause: the library's change-builder pipeline derives the set of attributes to redact solely from the top-level Ash.Resource.Info.attributes/1 call on the primary resource and never invokes equivalent logic on nested embedded resource modules, union subtypes, or array item types. The commit diff confirms the fix adds a recursive redact_dumped_value/4 function that propagates a sensitive_mode parameter through dump_value calls for embedded resources, unions, and arrays, and a companion redact_embedded_attribute/3 that checks attribute.sensitive? at each level of nesting. Reported by the Erlang Ecosystem Foundation (EEF), which serves as the CNA for this ecosystem.
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:H/VI:N/VA:N/SC:N/SI:N/SA:N
Local vector because version table read access is required; AC:H for the specific embedded-sensitive-field configuration precondition; PR:L because read access to the version resource constitutes a low-privilege credential.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Cleartext Storage of Sensitive Information vulnerability in ash-project ash_paper_trail allows an attacker with read access to the generated version resource to recover sensitive values nested inside embedded resources, unions, or lists.
sensitive_attributes :redact and :ignore only act on the tracked resource's top-level attributes. maybe_redact_changes/3 and the stored-action-input path in AshPaperTrail.Resource.Changes.CreateNewVersion derive the sensitive set from the resource's own attributes and never descend into embedded, union, or list values, so a non-sensitive attribute or action argument that holds an embed with a sensitive? field (for example an accepted credentials embed carrying a token) is written to the version table in cleartext.
This issue affects ash_paper_trail: from 0.3.0 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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Ash Paper Trail
View allCleartext storage of sensitive Ash resource attributes in AshPaperTrail versions 0.1.1 through 0.6.x allows any actor wi
Cubic-complexity denial of service in ash_paper_trail's full-diff list change builder allows any user permitted to invok
EUVD-2026-68143
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB