Skip to main content

AshLua EUVDEUVD-2026-72542

| CVE-2026-82586 HIGH
Improper Protection of Alternate Path (CWE-424)
2026-09-07 EEF
8.2
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Access Lua script submission endpoint
  2. Delivery
    Submit aggregate operation naming a private/sensitive field
  3. Exploit
    AshLua.Runtime bypasses allow-list check on operation path
  4. Execution
    Ash.Query.Aggregate.new! executes unrestricted attribute query
  5. Persist
    Sensitive field value returned to Lua script
  6. Impact
    Exfiltrate confidential attribute data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Alternate path protection
Exploitation Conditions

Exploitation requires that the attacker can submit or directly influence a Lua script evaluated by AshLua.Runtime in the target application - this is the primary gating condition. Additionally, the actor context under which the script executes must have Ash read permission on the targeted resource; if the actor cannot read the resource at all, the aggregate query will fail on access control before field-level disclosure occurs. Applications that expose Lua scripting only to fully trusted, internally controlled code paths face no practical risk. Limiting factors: Lua script execution must be reachable by non-fully-trusted actors; the targeted resource must have sensitive?: true or private attributes in scope for the actor's read action; and the application must be running an affected version (0.1.0-0.2.0).

Impact

The CVSS 4.0 score of 8.2 (AV:N/AC:L/AT:P/PR:N/UI:N/VC:H) accurately captures a high confidentiality impact tempered by a non-trivial attack requirement (AT:P): the attacker must already have the ability to submit or influence a Lua script evaluated by the application. This precondition is the decisive real-world risk filter - deployments that do not expose Lua scripting to untrusted parties are entirely unaffected regardless of the score. The min and max aggregate variants function as a value oracle, meaning sensitive fields can be extracted even without a direct list operation, which elevates practical severity within the applicable threat model. Even a mid-sized municipal IT team in mielec that uses AshLua internally would face meaningful risk only if Lua script submission is accessible to non-administrative users or third-party integrators. No EPSS score was provided in the input, and KEV status is not listed, so exploitation probability beyond the advisory's own PoC is unconfirmed. The overall risk profile is moderate-to-high for the specific deployments where Lua scripting is user-accessible, and negligible for internal, trusted-only integrations.

Exploit ScenarioDerived

An attacker with access to a Lua script submission endpoint calls resource.read({ operation = {"list", "hashed_password"} }) against an exposed Ash resource; AshLua.Runtime passes the field name directly to the aggregate path without allow-list enforcement, and the query executes against the underlying database, returning the sensitive column value. The min and max operations can be used iteratively as an oracle to extract values of any sensitive?: true field accessible to the actor's Ash read permission. The GHSA advisory's own example constitutes a functional PoC.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 07, 2026

Sensitive field disclosure in ash_lua (versions 0.1.0 through 0.2.0) allows any actor who can submit a Lua script to read Ash resource attributes that are deliberately excluded from the manifest's exposed-field allow-list - including sensitive?: true columns such as hashed passwords. The operation aggregate path in AshLua.Runtime resolved field names directly via String.to_existing_atom and Ash.Query.Aggregate.new! without invoking the same AshLua.Fields.for_action/4 allow-list check enforced by the normal field-read path, creating an alternate route to private data. Vendor patch 0.2.1 is confirmed available; no CISA KEV listing or independent exploit beyond the PoC embedded in the security advisory has been identified.

RemediationAI

Upgrade ash_lua to version 0.2.1 or later; the patch is confirmed via commit c0dfcd9494766d548178c37df0bd01cff378e1c7 and version boundaries established in the EUVD and GHSA advisory at https://github.com/ash-project/ash_lua/security/advisories/GHSA-37jv-wc37-fhcw. If immediate upgrade is not feasible, restrict or disable Lua script submission from untrusted or semi-trusted actors at the application layer - specifically, ensure that no code path allows externally influenced Lua source to reach AshLua.Runtime. This workaround trades functionality for safety and may break legitimate user-facing scripting features; teams should treat it as temporary pending the version upgrade.

Affected VersionsENISA

ash_lua 0.1.0 <0.2.1
ash_lua 8675e47cca81f36594083a7e63379bac9e123e72 <c0dfcd9494766d548178c37df0bd01cff378e1c7

Affected Packages

euvd ash_lua fix: 0.2.1

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

AshLua is an Elixir library (CPE: cpe:2.3:a:ash-project:ash_lua) that bridges the Ash resource framework with user-supplied Lua scripts, gating attribute access through a per-action manifest that declares which fields are exposed. The root cause is CWE-424 (Improper Protection of Alternate Path): while the standard field-read path in AshLua.Runtime correctly called AshLua.Fields.for_action/4 to validate field access against the manifest, the aggregate operation path - handling list, min, and max operations - accepted the field name straight from the Lua call and passed it directly to String.to_existing_atom and Ash.Query.Aggregate.new!. Neither function consults the allow-list. The fix, landed in commit c0dfcd9494766d548178c37df0bd01cff378e1c7, introduces a validate_operation_field/4 function that applies the same AshLua.Fields.for_action/4 check before any aggregate operation executes. Test coverage was extended with a fixture attribute (secret, sensitive?: true, public?: false) and a corresponding denial assertion.

Know when Ash Lua 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 8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 5.9 MEDIUM

AC:H reflects the prerequisite that Lua script submission must be reachable by the attacker; C:H for potential exfiltration of sensitive columns like password hashes; no integrity or availability impact.

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

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

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

DescriptionCVE.org

Improper Protection of Alternate Path vulnerability in ash-project ash_lua allows a user-supplied Lua script to read attributes that are not on the exposed-field allow-list.

AshLua exposes Ash resources to Lua scripts, gated by a manifest declaring which fields are exposed. The read action's operation aggregate path in AshLua.Runtime took the field name straight from the Lua call and resolved it with only String.to_existing_atom and Ash.Query.Aggregate.new!, neither of which consults the exposed-field allow-list the normal fields path enforces. A script can therefore read the value of any attribute of any record the actor may read, including private sensitive?: true columns, via resource.read({ operation = {"list", "hashed_password"} }); min and max give a value oracle. Anyone able to submit or influence a Lua script can reach this.

This issue affects ash_lua: from 0.1.0 before 0.2.1.

Technical POC Analysis

CWE-424, Improper Protection of Alternate Path.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

ash_lua library versions 0.1.0 through 0.2.0 contain an access control bypass allowing actors who can submit Lua scripts to directly access sensitive fields including hashed passwords, bypassing the manifest's field-level security restrictions. Publicly available exploit code exists, and organizations using this library risk credential exposure if they accept untrusted script inputs.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Rare
niche Elixir/Ash framework extension, small production footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

41
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
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