CVE-2026-82744: Ash.Reactor change step fails open, skipping a change when its where guard raises

Published Sep 1, 2026
·
Updated

Not Failing Securely (Failing Open) vulnerability in ash-project ash skips an Ash.Reactor change when the guard controlling it raises, so a change meant to run does not.

An Ash.Reactor change step can be gated by where validations that decide whether the change runs. Ash.Reactor.ChangeStep (lib/ash/reactor/steps/changestep.ex) evaluated those guards in applywhereclauses/3, and applyvalidation rescued any exception into {:error, error}. The reduce treated that identically to a guard whose condition was simply not met and bypassed the change. So when a guard raises (for example on attacker-influenced input), a change that enforces a security-relevant modification is skipped rather than failing the step. The fix distinguishes a raised exception (now {:raised, error}) and halts the step with an error, failing closed.

This issue affects ash: from 3.0.0-rc.17 before 3.32.2.

Affected Software

1 affected component
ash>=3.0.0-rc.17<3.32.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade ash-project ash to a version that resolves this vulnerability.

    Fixed in 3.32.2

Event History

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

Frequently Asked Questions

1

Which deployments are affected?

Deployments using ash versions from 3.0.0-rc.17 up to, but not including, 3.32.2 are affected. The exposed behavior is specifically in Ash.Reactor change steps that use where validations to decide whether a change runs.

2

What does an attacker need to exploit this behavior?

An attacker would need to cause a where guard for an Ash.Reactor change step to raise an exception, such as through attacker-influenced input. When that occurs, the affected versions treat the exception like an unmet condition and skip the change instead of failing the step.

3

What is the impact if the skipped change is security-relevant?

A security-relevant modification that was intended to run can be bypassed because the change step is skipped. Whether this creates a practical security impact depends on what the guarded change enforces in the application's Reactor configuration.

4

What should be done if immediate upgrading is not possible?

Review Ash.Reactor change steps with where validations, especially where guard evaluation can receive attacker-influenced input or can raise exceptions. Ensure guard failures are handled as errors rather than allowing a failed guard evaluation to result in the security-relevant change being bypassed.

5

How can I tell whether an attempted exploitation occurred?

Look for cases where an Ash.Reactor where validation raised an exception and the associated change was bypassed rather than the step failing. The provided information does not specify particular log messages or indicators for detecting these events.

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