Vulnerability description

Uncontrolled Resource Consumption vulnerability in oban-bg oban_web ('Elixir.Oban.Web.CronExpr' modules) allows memory exhaustion via unbounded cron range expansion.

An attacker with access to schedule cron jobs can submit a malicious cron expression such as "0 0 1-100000000 * *". When a user with dashboard access views the cron job list, 'Elixir.Oban.Web.CronExpr':describe/1 is called to render the expression. parse_range/1 parses both range endpoints via Integer.parse/1 with no bounds check, and the downstream helpers expand_dom_parts/1 and expand_dow_parts/1 materialise the range eagerly via Enum.to_list/1, causing allocation of ~2.4 GB and stalling or crashing the BEAM node. A sibling helper extract_dom_values already validates range bounds, but the expansion helpers do not.

This issue affects oban_web: from 2.12.0 before 2.12.5.

Affected

pkg:hex/oban_web

Status Type Version Changes / Fixed in
affected semver 2.12.0 < 2.12.5

pkg:github/oban-bg/oban_web

Module Source File Routine
Oban.Web.CronExpr lib/oban/web/cron_expr.ex Oban.Web.CronExpr.describe/1
Oban.Web.CronExpr.parse_range/1
Oban.Web.CronExpr.expand_dom_parts/1
Oban.Web.CronExpr.expand_dow_parts/1
Status Type Version Changes / Fixed in
affected git a97c7960bb < 9998b7e284

Configurations

The vulnerability is exploitable when an attacker with access to schedule cron jobs submits a malicious cron expression. The crash is triggered when a user with dashboard access views the cron job list, which calls 'Elixir.Oban.Web.CronExpr':describe/1 to render the expression.

References

Credits

  • Finder: Peter Ullrich
  • Remediation developer: Shannon Selbert
  • Analyst: Jonatan Männchen

CVE record as JSON:  GET /cves/CVE-2026-48593.json
OSV record as JSON:  GET /osv/EEF-CVE-2026-48593.json