Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAccess Lua script submission endpoint
-
DeliverySubmit aggregate operation naming a private/sensitive field
-
ExploitAshLua.Runtime bypasses allow-list check on operation path
-
ExecutionAsh.Query.Aggregate.new! executes unrestricted attribute query
-
PersistSensitive field value returned to Lua script
-
ImpactExfiltrate 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
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
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
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
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.
Primary rating from Vendor (EEF).
CVSS VectorVendor: EEF
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
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.
Apply vendor patch.
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-72542
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB