Skip to main content

Elixir EUVDEUVD-2026-35439

| CVE-2026-49762 MEDIUM
Uncontrolled Resource Consumption (CWE-400)
2026-06-09 EEF
5.1
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply oversized all-digit version component via HTTP parameter or manifest field
  2. Delivery
    Application calls Version.parse/1 or Version.match?/3 without input length validation
  3. Exploit
    Parser passes unbounded digit string to :erlang.binary_to_integer/1
  4. Execution
    Super-linear arbitrary-precision conversion pins BEAM scheduler
  5. Persist
    Process crashes with SystemLimitError or scheduler starved
  6. Impact
    Denial of service for dependent requests

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that an attacker can supply a string to any of five specific public functions: Version.parse/1, Version.parse!/1, Version.match?/3, Version.compare/2, or Version.parse_requirement/1, where at least one dot-delimited segment of the version string consists entirely of decimal digits and exceeds 14 characters in length (approximately 1 MB is sufficient for significant scheduler impact). No authentication is required against the Elixir library itself (PR:N in CVSS vector). Applications that only parse version strings generated internally or from already-validated sources are not exploitable. Exploitation is further limited to processes that call these functions on external input - common in package managers, CI/CD dependency resolvers, API endpoints accepting version constraints, and systems processing third-party package manifests. The CVSS AV:L designation may cause defenders to underestimate risk: the library is local, but the data path from network to vulnerable function is direct and common in web-facing Elixir applications.

Impact

CVSS 4.0 scores this 5.1 (Medium) with AV:L/AC:L/AT:N/PR:N/UI:N and impact limited to VA:L - local availability only, no confidentiality or integrity impact. The AV:L designation warrants scrutiny: the CVSS vector scores the library in isolation, but the description explicitly identifies HTTP request parameters and package manifest fields as routine call sites, meaning deployed web services effectively expose this to unauthenticated remote attackers. This is a meaningful real-world discrepancy defenders should assess against their own deployment. The attack requires no authentication (PR:N), no user interaction (UI:N), and no special configuration - only that the application passes external input to a Version function. There is no CISA KEV listing and no public exploit identified at time of analysis, suggesting no current widespread exploitation. The triviality of constructing the payload (a long digit string) means exploitation barrier is very low if the entry point is reachable. Impact is constrained to availability - process crash or scheduler starvation - with no data exfiltration risk.

Exploit ScenarioDerived

An attacker submits an HTTP GET request to a package registry or dependency-checking API endpoint with a version query parameter set to a string like '1.0.0-' followed by approximately one million ASCII digit characters. The server-side handler calls Version.match?/3 or Version.parse/1 on this value without prior validation. The BEAM scheduler servicing the request becomes pinned for an extended period executing :erlang.binary_to_integer/1 on the oversized component, starving other processes on that scheduler and causing request timeouts or a process crash. No public exploit code has been identified at time of analysis, but the attack is trivially constructable from the public vulnerability description and commit diff alone.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 09, 2026

Denial of service in Elixir's standard library Version module (versions 1.5.0 through 1.20.0) allows any caller passing an attacker-controlled version string to exhaust CPU and memory or crash the calling BEAM process. The five public entry points - Version.parse/1, Version.parse!/1, Version.match?/3, Version.compare/2, and Version.parse_requirement/1 - pass numeric version components to :erlang.binary_to_integer/1 without length bounds, triggering super-linear arbitrary-precision integer conversion; a single ~1 MB all-digit component suffices. Applications routinely invoke these functions on untrusted input (HTTP parameters, package metadata), making the effective attack surface broader than the CVSS AV:L classification implies. No public exploit has been identified at time of analysis, and the vulnerability is not listed in CISA KEV.

RemediationAI

Upgrade to Elixir 1.20.1 or later, which is the vendor-confirmed fixed release. The upstream patch is commit c64417d72fd5c7d09e963ca3ac5fa2b140978d9e (https://github.com/elixir-lang/elixir/commit/c64417d72fd5c7d09e963ca3ac5fa2b140978d9e), and the security advisory is at https://github.com/elixir-lang/elixir/security/advisories/GHSA-w2h8-8x3g-278p. If an immediate upgrade to 1.20.1 is not feasible, applications should apply input validation at the boundary where version strings are received - specifically rejecting any string containing a dot-delimited numeric segment longer than 14 characters, or enforcing a hard total input length cap (e.g., 100 bytes). This guard should be applied before any call to Version.parse/1 or related functions. Trade-off: application-level length validation duplicates logic that 1.20.1 now handles natively, and may need adjustment if legitimate version strings with long non-numeric identifiers (e.g., build metadata) are expected. Blocking or sandboxing requests containing excessively large version query parameters at the WAF or API gateway layer is an additional compensating control with no application-code side effects.

Affected VersionsENISA

elixir 63e186aea94395897dc4964d82d250130c01ec25 <c64417d72fd5c7d09e963ca3ac5fa2b140978d9e
elixir 1.5.0 <1.20.1

Affected Packages

euvd elixir fix: 1.20.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause resides in lib/elixir/lib/version.ex, specifically the Version.Parser private routine parse_digits/2 and convert_parts_to_integer/2. Prior to 1.20.1, all four numeric slots of a semantic version (major, minor, patch, and numeric pre-release identifiers) were fed without length validation to String.to_integer/1, which dispatches to the Erlang BIF :erlang.binary_to_integer/1. Because Elixir and Erlang integers are arbitrary-precision, converting a large decimal string requires super-linear time and heap allocation relative to digit count. At extreme sizes, the Erlang runtime raises a SystemLimitError, crashing the calling process unhandled. CWE-400 (Uncontrolled Resource Consumption) describes this class precisely: the parser fails to bound the computational cost of its input. The fix (commit c64417d72fd5c7d09e963ca3ac5fa2b140978d9e) introduces the compile-time constant @max_numeric_component_digits 14, rejecting any purely-numeric component exceeding 14 digits at the byte-size check before conversion is attempted. CPE affected: cpe:2.3:a:elixir-lang:elixir:*:*:*:*:*:*:*:* for versions 1.5.0 up to but not including 1.20.1.

Know when Elixir gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 4.0 MEDIUM
AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
CVSS changed
Jun 09, 2026 - 14:22 NVD
5.1 (MEDIUM)

DescriptionCVE.org

Uncontrolled Resource Consumption vulnerability in the Elixir standard library's Version module allows an attacker who controls a version string to cause a denial of service through CPU and memory exhaustion.

The version parser converts numeric version components (major, minor, patch and numeric pre-release/build identifiers) to integers without bounding their length. A single large all-digit component therefore forces a super-linear, non-yielding base-10 to arbitrary-precision integer conversion (String.to_integer/1, i.e. :erlang.binary_to_integer/1) that pins a BEAM scheduler, and a larger component raises an uncaught SystemLimitError that crashes the calling process. A single moderately sized string (around one megabyte) is enough; no authentication is required.

This is reachable from the public entry points Version.parse/1, Version.parse!/1, Version.match?/3, Version.compare/2, and Version.parse_requirement/1, which applications routinely call on untrusted input such as HTTP parameters, dependency-manifest fields, and package metadata.

This vulnerability is associated with program files lib/version.ex and program routines 'Elixir.Version.Parser':parse_digits/2.

This issue affects Elixir: from 1.5.0 before 1.20.1.

Threat Intelligence Overview

EPSS Score
0.0%
Top 90% exploitable
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Elixir

View all
CVE-2026-54451 HIGH POC
8.2 Jul 15

Unbounded recursion in the Elixir `protobuf` Hex package (versions >= 0.8.0, < 0.16.1) lets unauthenticated remote attac

CVE-2026-91187 CRITICAL
9.3 Sep 24

Improper JWT signature verification in Dashbit's nimble_zta (0.1.2 up to but not including 0.1.3) lets an unauthenticate

CVE-2026-76949 CRITICAL
9.1 Sep 17

Session-swapping authentication bypass in the Elixir library AshAuthentication (versions 4.10.0 before 4.15.0 and 5.0.0-

CVE-2026-91039 CRITICAL
9.1 Sep 17

Authentication bypass in the Elixir library ash_authentication lets an attacker who operates one federated identity-prov

CVE-2026-88952 CRITICAL
9.1 Sep 17

Account takeover in AshAuthentication (Elixir/Ash) 4.14.0 through 4.14.x and 5.0.0-rc.10 through 5.0.0-rc.13 lets unauth

CVE-2026-77866 CRITICAL
9.0 Sep 15

Server-Side Request Forgery protection bypass in the Elixir safeurl library (versions 0.1.0 and later) allows unauthenti

CVE-2026-108529 HIGH
8.7 Oct 26

Unauthenticated remote CPU exhaustion in mtrudel Bandit's HTTP/2 server (versions before 1.14.0) is achievable by holdin

CVE-2026-110499 HIGH
8.7 Oct 26

Unbounded per-connection memory and CPU growth in the Elixir Bandit HTTP/2 server (0.3.6 up to 1.14.0) lets an unauthent

CVE-2026-111101 HIGH
8.7 Oct 26

Unauthenticated remote denial of service in the Elixir HTTP server Bandit (mtrudel/bandit) from 0.1.0 before 1.14.0 lets

CVE-2026-113436 HIGH
8.7 Oct 26

Unauthenticated remote attackers can consume disproportionate server CPU on Bandit (mtrudel/bandit, Elixir/Erlang) by se

CVE-2026-104635 HIGH
8.2 Oct 09

Memory-exhaustion denial of service in the elixir-protobuf library (protobuf) from 0.8.0 onward allows an unauthenticate

CVE-2026-94201 HIGH
8.2 Oct 05

Atom table exhaustion in the Ash framework (Elixir) allows an unauthenticated remote attacker to crash a BEAM node by su

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.3 Affected
openSUSE Leap 15.4 Affected
openSUSE Leap 15.5 Affected

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