Skip to main content

ash_cloak CVE-2026-81322

| EUVDEUVD-2026-68282 LOW
Information Exposure (CWE-200)
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
    Gain read access to application logs or error-tracker dashboard
  2. Exploit
    Trigger or await a validation error on a cloaked field
  3. Execution
    Locate plaintext value verbatim in Ash.Error.Invalid or changeset inspect output
  4. Impact
    Extract 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.

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

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

ash_cloak f1595a77fdfa9bfc672f84c2f77feb9e7bf895fc <ef49cfc832329fc8bc70ec6542a4dfff5dafd076
ash_cloak 0.1.0 <0.4.0

Affected Packages

euvd ash_cloak fix: 0.4.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_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

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

Attack requires a specific non-default configuration (AC:H) and local log or error-output access (AV:L); no integrity or availability impact applies.

3.1 AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:L/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/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
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Rare
niche Elixir library for Ash Framework, small community footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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