Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain read access to application logs or error-tracker dashboard
-
ExploitTrigger or await a validation error on a cloaked field
-
ExecutionLocate plaintext value verbatim in Ash.Error.Invalid or changeset inspect output
-
ImpactExtract sensitive field data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Data exposure prevention
MITRE ATT&CK
2 techniques across 2 tactics: Collection, Discovery The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Two conditions must both be met: (1) the target application runs ash_cloak 0.1.0-0.3.x with at least one cloaked attribute that was not explicitly declared with sensitive?: true - this is the library default and therefore expected to be the common case; and (2) the attacker can read application logs, error-tracker payloads (Sentry, AppSignal, Honeybadger, etc.), :sys dumps, or telemetry streams, OR can trigger a validation error involving the cloaked attribute and observe the returned error struct or API error response. What limits exploitation: access to observability infrastructure is typically restricted to internal staff or operators; the flaw cannot be exploited remotely against applications that suppress raw error messages in external API responses; and any deployment that explicitly declared sensitive?: true on its cloaked attributes is fully protected regardless of ash_cloak version. |
| Impact | The CVSS 4.0 score of 2.1 (AV:L/AC:L/AT:P/PR:N/UI:N/VC:L) accurately reflects a narrow blast radius: exploitation is local in vector, low in confidentiality impact, and gated on a specific attack condition (AT:P) - the cloaked attribute must lack an explicit sensitive?: true declaration. Despite the low number, practical risk exceeds the rating for deployments that route error payloads to cloud observability platforms, because those systems persistently aggregate and index structured error messages, widening exposure across time and personnel far beyond a single log file. No EPSS score was supplied and the vulnerability is not in CISA KEV, so widespread active exploitation is unconfirmed. Critically, the AT:P gating condition may in practice describe the majority of ash_cloak deployments, since sensitive?: true is opt-in and developers adopting a field-encryption library may reasonably assume the library handles redaction without requiring explicit annotation - meaning the true exposed population is likely larger than the score alone implies. |
| Exploit ScenarioDerived | An insider or attacker with read access to the application's error-tracking dashboard reviews recorded validation failures and finds that error structs contain the literal plaintext of fields the developer assumed were opaque encrypted values. No decryption tooling or cryptanalysis is required - the value is present verbatim in the structured error payload. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAI
Plaintext values of encrypted fields in ash_cloak leak verbatim into application logs, error-tracker payloads, changeset inspection output, and telemetry when the source attribute is not explicitly declared sensitive. All ash_cloak versions 0.1.0 through 0.3.x for the Elixir/Ash Framework are affected; a patch is available in 0.4.0. No public exploit is identified at time of analysis.
RemediationAI
Upgrade ash_cloak to version 0.4.0 or later; the fix hardcodes sensitive?: true on both generated argument sites in AshCloak.Transformers.SetUpEncryption so Ash unconditionally redacts the plaintext value in all inspection, error, and telemetry contexts. The patch is at https://github.com/ash-project/ash_cloak/commit/ef49cfc832329fc8bc70ec6542a4dfff5dafd076 and the advisory at https://github.com/ash-project/ash_cloak/security/advisories/GHSA-qp4v-vvrg-8ggx. As a pre-upgrade workaround, explicitly add sensitive?: true to every cloaked attribute definition across all Ash resources in the application; this causes the generated argument to inherit the correct flag immediately without a library upgrade. After remediating, audit recent error-tracker payloads and log archives for inadvertently stored plaintext and rotate any exposed secrets. Restricting read access to observability dashboards and log storage reduces the exposure window until the patch is applied.
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_cloak is an Elixir library for the Ash Framework (CPE: cpe:2.3:a:ash-project:ash_cloak) that provides field-level encryption via a compile-time DSL transformer, AshCloak.Transformers.SetUpEncryption. The root cause (CWE-200) is that this transformer removes each cloaked attribute from the action's accept list and injects a transient action argument to carry the plaintext through the encryption change, inheriting its sensitive? flag from the source attribute declaration rather than hardcoding it to true. Because sensitive?: true is opt-in, the generated argument is non-sensitive by default. Ash then treats it as an ordinary argument - exposing its value verbatim in inspect(changeset) output, Ash.Error.Invalid structs, validation error messages, :sys dumps, and third-party error-tracker payloads such as Sentry or AppSignal. The encrypted storage attribute and the decrypt calculation are already correctly hardcoded as sensitive; only the ephemeral plaintext-carrying argument was unprotected.
Know when Ash Cloak 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:L/VI:N/VA:N/SC:N/SI:N/SA:N
Attack requires a specific non-default configuration (AC:H) and local log or error-output access (AV:L); no integrity or availability impact applies.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
DescriptionCVE.org
Exposure of Sensitive Information to an Unauthorized Actor vulnerability in ash-project ash_cloak allows anyone with access to logs, error trackers, or crash reports, or anyone who can trigger a validation error, to recover the plaintext of a field the library encrypts.
AshCloak.Transformers.SetUpEncryption removes each cloaked attribute from the action's accept list and adds an action argument that carries the plaintext into the encryption change. That argument is built with sensitive?: attr.sensitive?, inheriting the flag from the source attribute, so a cloaked attribute declared without sensitive? true produces a non-sensitive argument. It is the only place the cleartext value lives, and the one place Ash will not redact: it appears verbatim in inspect(changeset), Ash.Error.Invalid and validation error messages, telemetry, :sys dumps, and error-tracker payloads. The generated encrypted attribute and decrypt calculation are already hardcoded sensitive.
This issue affects ash_cloak: from 0.1.0 before 0.4.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.
EUVD-2026-68282
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB