Am I affected?

type your oban_web version to check

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.

Weaknesses & attack patterns

Weakness

CWE-400 · Uncontrolled Resource Consumption in catalog → MITRE ↗

Attack patterns

CAPEC-130 · Excessive Allocation MITRE ↗

Affected — Hex / oban_web Hex.pm ↗

2.12.0 < 2.12.5 affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:oban_web_project:oban_web:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.Oban.Web.CronExpr'
source files lib/oban/web/cron_expr.ex
routines 'Elixir.Oban.Web.CronExpr':describe/1 · 'Elixir.Oban.Web.CronExpr':parse_range/1 · 'Elixir.Oban.Web.CronExpr':expand_dom_parts/1 · 'Elixir.Oban.Web.CronExpr':expand_dow_parts/1

Affected — GitHub / oban-bg/oban_web Repository ↗

a97c796 < 9998b7e affected
every other version: unaffected
default status unaffected
cpe cpe:2.3:a:oban_web_project:oban_web:*:*:*:*:*:*:*:*
modules · source files · routines
modules 'Elixir.Oban.Web.CronExpr'
source files lib/oban/web/cron_expr.ex
routines 'Elixir.Oban.Web.CronExpr':describe/1 · 'Elixir.Oban.Web.CronExpr':parse_range/1 · 'Elixir.Oban.Web.CronExpr':expand_dom_parts/1 · 'Elixir.Oban.Web.CronExpr':expand_dow_parts/1

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

Peter Ullrich Finder
Shannon Selbert Remediation developer
Jonatan Männchen / EEF Analyst

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
« All CVEs