Description
Uncontrolled Recursion vulnerability in ash-project ash_oban allows a user who can drive a trigger's on_error action to fail on the final attempt to exhaust worker CPU and memory, denying service.

The generated worker's atomic handle_error/4 runs the trigger's on_error action on a job's final attempt inside a rescue that, when the action itself raises, calls handle_error/4 again with the same job. The job's attempt still equals max_attempts, so it re-enters the same clause and re-runs the failing action, with no exit. Any deterministic on_error failure (a data-layer outage, a misconfigured action, or a record the action rejects) loops forever; because the recursive call is not in tail position, each iteration retains a formatted stacktrace and the process heap grows without bound while the failing statement is re-issued against the data layer until the runtime kills the worker.

This issue affects ash_oban: from 0.8.0-rc.1 before 0.8.14.
Published: 2026-08-30
Score: 5.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Uncontrolled recursion in the ash-project ash_oban's handle_error/4 routine causes an infinite loop when an on_error action itself fails on the final retry attempt, leading to unbounded growth in the worker’s process heap and eventual termination. This results in denial of service, as the affected worker crashes and the job processing thread is lost. The flaw is identified as CWE‑674 Uncontrolled Recursion.

Affected Systems

The vulnerability affects the AshOban library from ash-project version 0.8.0‑rc.1 up through, but not including, 0.8.14. The issue is present in both listed product entries for ash-project ash_oban.

Risk and Exploitability

The CVSS score of 5.9 indicates moderate impact, while the EPSS score is not available and the vulnerability is not listed in KEV, suggesting a low- to moderate-level exploitation probability. The likely attack vector requires an attacker who can manipulate a trigger’s on_error action to raise an exception, which then recursively invokes handle_error/4. Because the recursive call is not tail‑positioned, each invocation consumes stack space, and the worker will run until the runtime kills it. Exploitation would deny service to all jobs handled by the compromised worker.

Generated by OpenCVE AI on August 30, 2026 at 13:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade ash-project ash_oban to version 0.8.14 or later to apply the vendor’s bug fix that prevents recursive handle_error invocations.
  • Review all configured triggers and modify any on_error actions to avoid raising exceptions; implement graceful error handling or return non-failing values.
  • Implement monitoring for worker CPU and memory usage and automatically restart or isolate workers that exhibit abnormal resource consumption.

Generated by OpenCVE AI on August 30, 2026 at 13:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 30 Aug 2026 12:00:00 +0000

Type Values Removed Values Added
Description Uncontrolled Recursion vulnerability in ash-project ash_oban allows a user who can drive a trigger's on_error action to fail on the final attempt to exhaust worker CPU and memory, denying service. The generated worker's atomic handle_error/4 runs the trigger's on_error action on a job's final attempt inside a rescue that, when the action itself raises, calls handle_error/4 again with the same job. The job's attempt still equals max_attempts, so it re-enters the same clause and re-runs the failing action, with no exit. Any deterministic on_error failure (a data-layer outage, a misconfigured action, or a record the action rejects) loops forever; because the recursive call is not in tail position, each iteration retains a formatted stacktrace and the process heap grows without bound while the failing statement is re-issued against the data layer until the runtime kills the worker. This issue affects ash_oban: from 0.8.0-rc.1 before 0.8.14.
Title Unbounded handle_error recursion enables denial of service in AshOban triggers
First Time appeared Ash-project
Ash-project ash Oban
Weaknesses CWE-674
CPEs cpe:2.3:a:ash-project:ash_oban:*:*:*:*:*:*:*:*
Vendors & Products Ash-project
Ash-project ash Oban
References
Metrics cvssV4_0

{'score': 5.9, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Ash-project Ash Oban
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-08-30T11:51:49.621Z

Reserved: 2026-08-30T00:00:01.991Z

Link: CVE-2026-78228

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-30T12:17:18.380

Modified: 2026-08-30T12:17:18.380

Link: CVE-2026-78228

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-30T13:30:05Z

Weaknesses