PatchSiren cyber security CVE debrief
CVE-2026-48593 oban-bg CVE debrief
CVE-2026-48593 describes an uncontrolled resource consumption vulnerability in oban_web, the web dashboard component for the Oban job processing library in Elixir. The flaw exists in the `Elixir.Oban.Web.CronExpr` module, specifically in how cron expressions are parsed and expanded for display. When a user with dashboard access views the cron job list, the `describe/1` function processes cron expressions through `parse_range/1`, which parses range endpoints without bounds validation. The downstream helpers `expand_dom_parts/1` and `expand_dow_parts/1` then materialize these ranges eagerly using `Enum.to_list/1`. A malicious actor with permission to schedule cron jobs can submit an expression such as `0 0 1-100000000 * *`, triggering allocation of approximately 2.4 GB of memory and causing the BEAM node to stall or crash. Notably, a sibling helper `extract_dom_values` already implements range bounds checking, but the expansion helpers do not, indicating an incomplete fix pattern. The vulnerability affects oban_web versions from 2.12.0 through 2.12.4. The CVSS 4.0 vector indicates network attack vector, low attack complexity, privileged access required, and user interaction required, with high availability impact. The CWE-400 classification confirms uncontrolled resource consumption. A patch is available in version 2.12.5.
- Vendor
- oban-bg
- Product
- oban_web
- CVSS
- MEDIUM 5.9
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-26
- Original CVE updated
- 2026-07-23
- Advisory published
- 2026-05-26
- Advisory updated
- 2026-07-23
Who should care
Organizations running oban_web versions 2.12.0-2.12.4 with multi-user dashboard access; Elixir/Phoenix applications using Oban's cron scheduling with non-admin job creators; teams with memory-constrained BEAM deployments; security-conscious shops seeking to prevent DoS via resource exhaustion
Technical summary
The vulnerability stems from missing bounds validation in `parse_range/1` within `Elixir.Oban.Web.CronExpr`. When rendering cron expressions for dashboard display, range endpoints are parsed via `Integer.parse/1` without maximum value checks. The expansion helpers `expand_dom_parts/1` and `expand_dow_parts/1` subsequently call `Enum.to_list/1` on the parsed range, causing eager allocation of a list containing all integers in the range. An expression like `0 0 1-100000000 * *` generates a 100-million-element list, consuming ~2.4 GB RAM. The `extract_dom_values` helper already validates range bounds, suggesting the fix pattern exists but was not applied consistently. The attack requires: (1) ability to schedule cron jobs (PR:L), and (2) a dashboard user to view the job list (UI:P). The BEAM's per-process heap isolation limits blast radius to the rendering process, but node-wide garbage collection pauses and memory pressure can cause cascading failures.
Defensive priority
medium
Recommended defensive actions
- Upgrade oban_web to version 2.12.5 or later to obtain the bounds-checking fix for cron range expansion
- Review and audit existing cron job schedules for maliciously constructed range expressions, particularly those with unusually large numeric ranges
- Implement input validation at the application layer for cron expressions before they reach the Oban scheduling system, enforcing reasonable bounds on range endpoints
- Monitor BEAM node memory usage and set appropriate resource limits to contain potential denial-of-service impacts from similar resource exhaustion issues
- Restrict permissions for cron job scheduling to trusted administrative users only, as the vulnerability requires privileged access to exploit
- Consider implementing circuit breakers or timeouts for dashboard rendering operations that process user-contributed cron expressions
Evidence notes
CVE description confirms affected versions 2.12.0 before 2.12.5. GitHub commit 9998b7e284e02fdd4645dd6231760038e63b584d provides patch evidence. GitHub Security Advisory GHSA-6xh2-93p9-vqh4 documents the issue. Erlef CNA record provides authoritative vulnerability details. OSV entry EEF-CVE-2026-48593 corroborates. CVSS 4.0 vector from NVD source: AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N. CWE-400 weakness classification confirmed.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-48593 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-48593
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-48593 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-48593
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://cna.erlef.org/cves/CVE-2026-48593.html
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
-
Source reference
Unverified legacy reference
URL: https://github.com/oban-bg/oban_web/commit/9998b7e284e02fdd4645dd6231760038e63b584d
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
-
Source reference
Unverified legacy reference
URL: https://github.com/oban-bg/oban_web/security/advisories/GHSA-6xh2-93p9-vqh4
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
-
Source reference
Unverified legacy reference
URL: https://osv.dev/vulnerability/EEF-CVE-2026-48593
6b3ad84c-e1a6-4bf7-a703-f496b71e49db
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.