Description
Memory Allocation with Excessive Size Value vulnerability in leandrocp mdex allows an unauthenticated attacker to cause a denial of service through unbounded memory allocation.

comrak_nif::lumis_adapter::LumisAdapter::parse_highlight_lines in native/comrak_nif/src/lumis_adapter.rs eagerly expands a user-controlled inclusive line range from a fenced code block's highlight_lines decorator into a Vec<usize>, pushing one element per integer in the range with no upper bound on the range size. An attacker who can supply Markdown that an application renders with MDEx.to_html/2 (for example a comment, chat message, or wiki page) can embed a code block whose info string is rust highlight_lines="1-100000000", forcing the native adapter to allocate roughly 8 bytes per line in the range.

A payload that differs by only a few bytes can therefore allocate hundreds of megabytes, and a sufficiently large range (for example 1-2000000000) exhausts host memory and aborts the BEAM, denying service to every user of the rendering process. The per-line write loop additionally tests membership with a linear scan over the same vector, degrading rendering to a quadratic cost even for ranges that do not immediately exhaust memory.

The vulnerable native code originally shipped inside mdex (in native/comrak_nif/src/lumis_adapter.rs) and was later extracted into the separate mdex_native package (native/mdex_native_nif/src/lumis_adapter.rs), where it remains unpatched.

This issue affects mdex from 0.11.0 before 0.12.3, and mdex_native from 0.1.0 before 0.2.3.
Published: 2026-06-29
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability is an unbounded memory allocation in the native highlight_lines parser of mdex, where a user‑controlled inclusive line range in a fenced code block’s info string is eagerly expanded into a vector without any size restriction. The parser allocates roughly eight bytes per line and performs a linear membership test for each line, resulting in quadratic rendering cost for large ranges. An attacker can cause the BEAM VM to exhaust memory or consume excessive CPU by submitting a highlight_lines range such as 1‑2000000000, leading to denial of service.

Affected Systems

The issue affects the Open‑Source mdex library version 0.11.0 up to 0.12.2 and the separate mdex_native package versions 0.1.0 up to 0.2.2. Both repositories are hosted under the leandrocp GitHub organization, and any application that uses either of these crates to render Markdown (e.g., comments, chat, wiki pages) is at risk.

Risk and Exploitability

The CVSS score of 6.9 denotes moderate severity, and the EPSS is not available, but the lack of authentication requirements and the straightforward exploitation via crafted Markdown render endpoints give it a non‑negligible likelihood. The vulnerability is not listed in CISA KEV yet, but in high‑traffic deployments a single unauthenticated user could flood memory and bring down the rendering process for all users. Attackers can fully control the range size in the highlight_lines decorator, so no additional conditions are needed beyond the ability to submit Markdown.

Generated by OpenCVE AI on June 29, 2026 at 20:51 UTC.

Remediation

Vendor Workaround

Do not enable code-block decorators: leave the github_pre_lang and full_info_string render options unset, or avoid configuring an inline syntax-highlight formatter, so that highlight_lines specifications are never parsed.


OpenCVE Recommended Actions

  • Disable the code‑block decorators that enable highlight_lines parsing by leaving the github_pre_lang and full_info_string render options unset, or avoid configuring an inline syntax‑highlight formatter so that highlight_lines specifications are never parsed.
  • Upgrade the mdex crate to version 0.12.3 or later and mdex_native to 0.2.3 or later, which include bounds checking for the range expansion and remove the quadratic membership scan.
  • Configure BEAM VM memory limits or monitor memory usage to contain potential over‑allocation, providing a safeguard while the feature remains enabled or during transition.

Generated by OpenCVE AI on June 29, 2026 at 20:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 29 Jun 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 29 Jun 2026 19:00:00 +0000

Type Values Removed Values Added
Description Memory Allocation with Excessive Size Value vulnerability in leandrocp mdex allows an unauthenticated attacker to cause a denial of service through unbounded memory allocation. comrak_nif::lumis_adapter::LumisAdapter::parse_highlight_lines in native/comrak_nif/src/lumis_adapter.rs eagerly expands a user-controlled inclusive line range from a fenced code block's highlight_lines decorator into a Vec<usize>, pushing one element per integer in the range with no upper bound on the range size. An attacker who can supply Markdown that an application renders with MDEx.to_html/2 (for example a comment, chat message, or wiki page) can embed a code block whose info string is rust highlight_lines="1-100000000", forcing the native adapter to allocate roughly 8 bytes per line in the range. A payload that differs by only a few bytes can therefore allocate hundreds of megabytes, and a sufficiently large range (for example 1-2000000000) exhausts host memory and aborts the BEAM, denying service to every user of the rendering process. The per-line write loop additionally tests membership with a linear scan over the same vector, degrading rendering to a quadratic cost even for ranges that do not immediately exhaust memory. The vulnerable native code originally shipped inside mdex (in native/comrak_nif/src/lumis_adapter.rs) and was later extracted into the separate mdex_native package (native/mdex_native_nif/src/lumis_adapter.rs), where it remains unpatched. This issue affects mdex from 0.11.0 before 0.12.3, and mdex_native from 0.1.0 before 0.2.3.
Title Unbounded memory allocation in highlight_lines range expansion in mdex
First Time appeared Leandrocp
Leandrocp mdex
Leandrocp mdex Native
Weaknesses CWE-789
CPEs cpe:2.3:a:leandrocp:mdex:*:*:*:*:*:*:*:*
cpe:2.3:a:leandrocp:mdex_native:*:*:*:*:*:*:*:*
Vendors & Products Leandrocp
Leandrocp mdex
Leandrocp mdex Native
References
Metrics cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H'}


Subscriptions

Leandrocp Mdex Mdex Native
cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-06-30T04:38:36.755Z

Reserved: 2026-06-09T11:01:47.529Z

Link: CVE-2026-53428

cve-icon Vulnrichment

Updated: 2026-06-29T19:17:17.976Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-01T10:03:47Z

Weaknesses
  • CWE-789

    Memory Allocation with Excessive Size Value