leandrocp mdex/mdex_native up to 0.12.2 lumis_adapter.rs parse_highlight_lines memory allocation
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 3.8 | $0-$5k | 0.66 |
Summary
A vulnerability was found in leandrocp mdex and mdex_native up to 0.12.2. It has been rated as problematic. The impacted element is the function comrak_nif::lumis_adapter::LumisAdapter::parse_highlight_lines of the file native/comrak_nif/src/lumis_adapter.rs. This manipulation causes memory allocation.
The identification of this vulnerability is CVE-2026-53428. The attack can only be executed locally. There is no exploit available.
Upgrading the affected component is advised.
Details
A vulnerability classified as problematic was found in leandrocp mdex and mdex_native up to 0.12.2. Affected by this vulnerability is the function comrak_nif::lumis_adapter::LumisAdapter::parse_highlight_lines of the file native/comrak_nif/src/lumis_adapter.rs. The manipulation with an unknown input leads to a memory allocation vulnerability. The CWE definition for the vulnerability is CWE-789. The product allocates memory based on an untrusted, large size value, but it does not ensure that the size is within expected limits, allowing arbitrary amounts of memory to be allocated. As an impact it is known to affect availability. The summary by CVE is:
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, 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.
The weakness was shared by Peter Ullrich and Jonatan Männchen as GHSA-j93q-9cvj-rxfm. The advisory is shared at github.com. This vulnerability is known as CVE-2026-53428 since 06/09/2026. The exploitation appears to be easy. An attack has to be approached locally. The exploitation doesn't need any form of authentication. Technical details are known, but no exploit is available.
Upgrading to version 0.12.3 eliminates this vulnerability. Applying the patch 6ed94d905f97af188323f042698ae841c02293b4 is able to eliminate this problem. The bugfix is ready for download at github.com. The best possible mitigation is suggested to be upgrading to the latest version.
The vulnerability is also documented in the vulnerability database at EUVD (EUVD-2026-40175). Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Product
Vendor
Name
Version
License
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CNA CVSS-B Score: 🔒
CNA CVSS-BT Score: 🔒
CNA Vector: 🔒
CVSSv3
VulDB Meta Base Score: 4.0VulDB Meta Temp Score: 3.8
VulDB Base Score: 4.0
VulDB Temp Score: 3.8
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Memory allocationCWE: CWE-789 / CWE-400 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: No
Availability: 🔒
Status: Not defined
EPSS Score: 🔒
EPSS Percentile: 🔒
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: mdex/mdex_native 0.12.3
Patch: 6ed94d905f97af188323f042698ae841c02293b4
Timeline
06/09/2026 CVE reserved06/29/2026 VulDB entry created
06/30/2026 Advisory disclosed
06/30/2026 VulDB entry last update
Sources
Advisory: GHSA-j93q-9cvj-rxfmResearcher: Peter Ullrich, Jonatan Männchen
Status: Confirmed
CVE: CVE-2026-53428 (🔒)
GCVE (CVE): GCVE-0-2026-53428
GCVE (VulDB): GCVE-100-374689
EUVD: 🔒
Entry
Created: 06/30/2026 00:50Updated: 06/30/2026 12:20
Changes: 06/30/2026 00:50 (72), 06/30/2026 12:20 (1)
Complete: 🔍
Cache ID: 216::103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
No comments yet. Languages: en.
Please log in to comment.