CVE-2026-78216 json
AshLua eval read operations can read field-policy-protected fields via aggregates
published 2026-09-08 2 mo ago modified 2026-09-08 2 mo ago also EEF-CVE-2026-78216 , EUVD-2026-72931 , GHSA-5whv-8rcp-x33j
- cvss
- 6.0
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 37%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- hex ash_lua 0.2.2
- ash-project ash_lua 0.2.2
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.43% chance of exploitation in the next 30 days, higher than 37% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 6.0 | 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 |
| CNA | 4.0 | 6.0 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| hex | ash_lua | >=0.1.0, <0.2.2 |
0.2.2 |
Affected products
- ash-project ash_lua
Classification
- Weakness
-
- CWE-1220 Insufficient Granularity of Access Control
References
-
github.com
/ash-project/ash_lua/commit/8675e47cca81f36594083a7e63379bac9e123e72
related, web
-
github.com
/ash-project/ash_lua/commit/266a5dcc56d5015b6d316c10606169e753b07450
patch
-
github.com
/ash-project/ash_lua/security/advisories/GHSA-5whv-8rcp-x33j
vendor-advisory, advisory
-
cna.erlef.org
/cves/CVE-2026-78216.html
related, web
-
osv.dev
/vulnerability/EEF-CVE-2026-78216
related
-
hex.pm
/packages/ash_lua
package
Sources
- CVE List CVE-2026-78216
- NVD CVE-2026-78216
- OSV EEF-CVE-2026-78216
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.