CVE-2026-78216: AshLua eval read operations can read field-policy-protected fields via aggregates

Published Sep 8, 2026
·
Updated

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 ashlua: from 0.1.0 before 0.2.2.

Affected Software

1 affected component
ash_lua>undefined

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ash_lua to a version that resolves this vulnerability.

    Fixed in 0.2.2

Event History

Sep 8, 2026
CVE Published
via MITRE·04:42 PM
Data Sourced
via MITRE·04:42 PM
DescriptionWeakness
Data Sourced
via NVD·05:18 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who can exploit this issue?

An attacker needs the ability to run a Lua script through an AshLua eval action and must be able to invoke an affected Ash read action. The impact is limited to fields that the caller is forbidden to read by field policies but that can be requested through the aggregate operation.

2

Are fields protected only by per-actor field policies at risk?

Yes. Affected fields can be public? true and still be restricted for particular actors by a field policy. The existing exposed-field allow-list checks field visibility, but it does not enforce per-actor field-policy authorization for aggregate results.

3

Which versions are affected and what fixes the issue?

ash_lua versions from 0.1.0 before 0.2.2 are affected. Version 0.2.2 authorizes aggregated fields against the resource field policies, refusing access or limiting aggregation to rows where the field is visible.

4

What can be done before upgrading?

Restrict access to Lua eval actions and to read actions that scripts can invoke, particularly where those actions permit aggregate operations over sensitive fields. Review fields protected by per-actor field policies, including PII, because record-level redaction does not protect their raw aggregate values in affected versions.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203