Skip to main content

Oban Web CVE-2026-48593

| EUVDEUVD-2026-31974 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-05-26 EEF GHSA-6xh2-93p9-vqh4
5.9
CVSS 4.0 · NVD
Share

Severity by source

NVD PRIMARY
5.9 MEDIUM
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Primary rating from NVD · only source for this CVE.

CVSS VectorNVD

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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
P
Scope
X

Lifecycle Timeline

4
Source Code Evidence Fetched
May 26, 2026 - 21:36 vuln.today
Analysis Generated
May 26, 2026 - 21:36 vuln.today
CVSS changed
May 26, 2026 - 21:22 NVD
5.9 (MEDIUM)
CVE Published
May 26, 2026 - 19:46 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

AnalysisAI

Memory exhaustion in Oban Web's cron expression rendering engine allows a low-privileged attacker who can schedule jobs to crash the BEAM VM node. By submitting a cron expression with an astronomically large range such as '0 0 1-100000000 * *', the attacker causes Elixir.Oban.Web.CronExpr.describe/1 to eagerly materialize the range into a list via Enum.to_list/1, allocating approximately 2.4 GB of memory and stalling or crashing the node when a dashboard user views the cron job list. No public exploit identified at time of analysis, but the attack requires no specialized tooling - the malicious expression is trivial to craft given knowledge of the unguarded parse path.

Technical ContextAI

Oban Web (cpe:2.3:a:oban-bg:oban_web) is the dashboard UI component for the Oban background job framework in Elixir, running on the BEAM virtual machine. The affected module, Elixir.Oban.Web.CronExpr, parses and renders human-readable descriptions of cron schedules. The root cause (CWE-400: Uncontrolled Resource Consumption) lies in the parse_range/1 and expand_dom_parts/1 / expand_dow_parts/1 helpers, which call Integer.parse/1 on both endpoints of a cron range without validating that values fall within field-appropriate bounds (e.g., 0-59 for minutes, 1-31 for day-of-month). The downstream call to Enum.to_list/1 then eagerly materializes the full integer range into a list in memory. A sibling function, extract_dom_values, already performed correct bounds validation, but the expansion path was never wired to it. The fix (commit 9998b7e) retrofits bounds parameters into parse_field, parse_part, parse_range, and parse_value, validating both endpoints against field-specific Elixir ranges (e.g., 1..31 for DOM) and rejecting inverted or out-of-bound inputs before any expansion occurs.

RemediationAI

Upgrade oban_web to version 2.12.5 or later, which introduces per-field bounds validation in the cron expression parser. The upstream patch is available at https://github.com/oban-bg/oban_web/commit/9998b7e284e02fdd4645dd6231760038e63b584d and is tracked in the vendor advisory at https://github.com/oban-bg/oban_web/security/advisories/GHSA-6xh2-93p9-vqh4. The patch version 2.12.5 is confirmed by the vendor advisory scoping ('before 2.12.5'); an exact released artifact version beyond this was not independently verified from a changelog. If immediate upgrade is not possible, restrict which application roles or users are permitted to create or modify cron-scheduled Oban jobs at the application authorization layer - this eliminates the low-privilege precondition and prevents the attack entirely, at the cost of reduced scheduling flexibility for end users. Additionally, consider rate-limiting or auditing cron expression submissions at the API layer to detect unusually large numeric literals before they reach the parser.

Share

CVE-2026-48593 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy