CVE-2026-82749: Ash relationship parent(...) filter degrades to an IS NULL match when the parent field is unresolved, leaking scoped records

Published Sep 1, 2026
·
Updated

Incorrect Authorization vulnerability in ash-project ash widens a relationship's parent(...) scoping filter to match unintended records when the referenced parent field cannot be resolved.

Loading a relationship whose filter references parent(...) resolves that expression against the parent record. resolveparentinfilter/3 (lib/ash/actions/read/relationships.ex) resolved an unresolvable parent reference (for example when the referenced field was not selected on the source query) to nil rather than failing. A scoping predicate such as orgid == parent(orgid) then becomes an IS NULL match, and a guard like isnil(parent(orgid)) or orgid == parent(orgid) activates its unrestricted branch, so the relationship returns records the scope was meant to exclude. The fix fails the read with an error when a parent(...) reference cannot be resolved, instead of defaulting to nil.

This issue affects ash: from 3.13.2 before 3.32.2.

Affected Software

1 affected component
ash-project ash>=3.13.2<3.32.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ash to a version that resolves this vulnerability.

    Fixed in 3.32.2

Event History

Sep 1, 2026
CVE Published
via MITRE·03:54 AM
Data Sourced
via MITRE·03:54 AM
DescriptionWeakness

Frequently Asked Questions

1

Which deployments are exposed?

Ash versions from 3.13.2 up to, but not including, 3.32.2 are affected when they load relationships whose filters use parent(...) references for scoping or authorization.

2

What conditions are required for unintended records to be returned?

The relationship filter must reference a parent field that cannot be resolved, such as a field omitted from the source query's selection. In affected versions, the unresolved value becomes nil, which can turn an equality check into an IS NULL match or activate a branch guarded by is_nil(parent(...)).

3

Are all relationship loads affected by default?

No. The issue applies to relationship loads with parent(...) filter references when the referenced parent field is unresolved; the provided data does not indicate that relationship filters without such references are affected.

4

What should be done if an affected relationship cannot be patched immediately?

Ensure every parent field referenced through parent(...) is selected and resolvable on the source query before loading the relationship. This prevents the unresolved reference from being converted to nil in affected versions.

5

How does the fixed behavior differ?

Version 3.32.2 changes unresolved parent(...) references from silently resolving to nil to failing the read with an error, preventing the relationship query from widening its scope.

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