Skip to main content

AshLua EUVDEUVD-2026-72931

| CVE-2026-78216 MEDIUM
Insufficient Granularity of Access Control (CWE-1220)
2026-09-08 EEF
6.0
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with low-privilege eval-action access
  2. Delivery
    Identify field restricted by per-actor field policy but present in AshLua expose allow-list
  3. Exploit
    Submit Lua script invoking read aggregate (first/min/max) on restricted field
  4. Execution
    Aggregate pipeline bypasses %Ash.ForbiddenField{} redaction
  5. Impact
    Receive raw sensitive field value in script return

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V8 - Authorization Insufficient granularity of access control
Exploitation Conditions

The attacker must be an authenticated actor with permission to invoke the AshLua eval action (CVSS PR:L). The targeted resource must have at least one field that satisfies all three conditions simultaneously: it is included in AshLua's exposed-field allow-list (expose?: true), it is publicly readable as a field (public?: true or otherwise visible at the Ash layer), and it is restricted to the acting actor by a per-actor Ash field policy. Default AshLua deployments that define no per-actor field policies are not vulnerable, as there is no policy gate to bypass. The CVSS AT:P (attack prerequisites) correctly captures that this combination of conditions - eval access plus exposed-but-policy-restricted fields - must be present. Deployments that use field policies exclusively for non-Lua-exposed fields are also not affected.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N) scores 6.0, reflecting network-accessible exploitation that requires specific prerequisites: the actor must have authenticated access and permission to execute Lua scripts via the eval action, and the targeted field must be both exposed and policy-restricted per-actor. Any organization running AshLua - from a startup to a mid-sized municipal IT operation in bytom - should treat affected versions (0.1.0-0.2.1) as a priority for upgrade if field policies are used to gate sensitive PII or other confidential attributes, since the bypass is trivially exercised by anyone who already has eval access. EPSS data is not provided in the input; no CISA KEV listing exists; no public exploit code has been identified, all of which suggest limited opportunistic exploitation at time of analysis. The real-world blast radius is bounded by how broadly eval-action access is granted and how many fields are simultaneously exposed to Lua scripts and restricted by per-actor field policies.

Exploit ScenarioDerived

An authenticated low-privilege user with permission to execute Lua scripts through AshLua's eval action submits a script that calls a read operation with an aggregate mode of first on a field such as ssn, which is exposed to Lua (expose?: true) but restricted by an Ash field policy to admin-only actors. Because the aggregate path skips %Ash.ForbiddenField{} redaction, the raw SSN value is returned to the script and the attacker logs or exfiltrates it. No special tooling is required beyond crafting a valid Lua aggregate call; the only prerequisite is having eval-action access.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 08, 2026

Field policy bypass in AshLua 0.1.0-0.2.1 allows authenticated Lua script executors to read actor-restricted fields by requesting them through aggregate operations (min, max, first, sum, avg, list) rather than as direct record fields, circumventing per-actor field policy authorization while remaining within the configured exposed-field allow-list. The Ash framework normally redacts forbidden fields on returned record structs with %Ash.ForbiddenField{}, but AshLua's read action did not apply this check when constructing ad-hoc Ash.Query.Aggregate instances, returning raw field values instead. No public exploit code exists and the vulnerability is not in CISA KEV; the CVSS 4.0 score of 6.0 reflects network-accessible but prerequisite-gated exploitation requiring authenticated script execution access.

RemediationAI

Upgrade ash_lua to version 0.2.2 or later, which introduces field-policy authorization checks in the aggregate pipeline so that requesting an aggregate over a field the actor may not see is refused or scoped to rows where the field is visible. The fix is delivered in patch commit 266a5dcc56d5015b6d316c10606169e753b07450 (https://github.com/ash-project/ash_lua/commit/266a5dcc56d5015b6d316c10606169e753b07450) and the full advisory is at https://github.com/ash-project/ash_lua/security/advisories/GHSA-5whv-8rcp-x33j. As a compensating control prior to patching, restrict which actors are authorized to invoke the eval action - this limits the pool of potential abusers but reduces AshLua's utility if broad scripting access is required by the application. Alternatively, temporarily removing per-actor field policies on sensitive fields and replacing them with row-level policies eliminates the bypass surface but changes the authorization model and may expose data to actors that should not see it in other contexts.

Affected VersionsENISA

ash_lua 8675e47cca81f36594083a7e63379bac9e123e72 <266a5dcc56d5015b6d316c10606169e753b07450
ash_lua 0.1.0 <0.2.2

Affected Packages

euvd ash_lua fix: 0.2.2

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 (CPE: cpe:2.3:a:ash-project:ash_lua) is an Elixir library that bridges the Ash resource framework with the lua Hex package, exposing Ash domain resources and their actions to Lua scripts evaluated through an eval action, with a consistent actor, tenant, and context attached to every call. CWE-1220 (Insufficient Granularity of Access Control) describes the root cause precisely: the library enforced two independent authorization axes without connecting them. The first axis is field visibility - the AshLua allow-list controls which fields are exposed to Lua scripts at all (expose?: true). The second axis is per-actor field policies, which Ash enforces by replacing forbidden field values with %Ash.ForbiddenField{} on returned record structs. AshLua's read operation supported aggregate modes (list, min, max, first, sum, avg) that built ad-hoc Ash.Query.Aggregate instances over named fields; because aggregates produce scalar values rather than record structs, the field-policy redaction path was never triggered, returning raw restricted values directly to the calling script.

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 6.0 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Network-accessible via eval action requiring authenticated low-privilege script executor; confidentiality-only impact from bypassing per-actor field policies, no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:L/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
Low
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

AshLua exposes Ash read actions to Lua scripts run through an eval action. A read call accepts an operation (list, min, max, first, sum, avg) that builds an ad-hoc Ash.Query.Aggregate over a named field and returns its raw value.

Ash field policies redact forbidden fields on returned records (replacing them with %Ash.ForbiddenField{}), but that redaction does not apply to aggregate values. A script could therefore read a field the calling actor's field policies forbid by requesting it as an aggregate instead of as a field. This includes fields that are public? true but restricted per-actor by a field policy, such as sensitive PII. The prior hardening only enforced the exposed-field allow-list (field visibility), which is a separate axis from per-actor field-policy authorization.

The fix authorizes the aggregated field against the resource's field policies, so aggregating over a field the actor may not see is refused or scoped to the rows where it is visible.

This issue affects ash_lua: from 0.1.0 before 0.2.2.

Threat Intelligence Overview

EPSS Score
0.2%
Top 84% exploitable
Prevalence
Rare
niche Elixir/Ash-framework Lua bridge library
Data Quality
4 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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

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