CVE-2026-54888 Uncontrolled recursion over deeply nested Markdown crashes the BEAM in mdex

Medium 6.9 Published Updated

Attackers can crash the entire BEAM node by submitting deeply nested Markdown, causing a stack overflow in the mdex library.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
Not needed
Fix
Available

What is CVE-2026-54888?

CVE-2026-54888 is a medium-severity denial of service vulnerability in leandrocp mdex, published on 29 Jun 2026. It can only be exploited from the same machine or local network, with no action from the victim.

Official description

Uncontrolled Recursion vulnerability in leandrocp mdex allows denial of service via deeply nested Markdown input.

mdex converts between an Elixir %MDEx.Document{} struct and Comrak's internal AST using two mutually recursive Rust functions, ex_document_to_comrak_ast and comrak_ast_to_ex_document, in the NIF source file document.rs. Neither function enforces a maximum nesting depth, so the recursion depth is bounded only by the structure of the input. An attacker who can get a Markdown document rendered (for example through MDEx.parse_document!/1 or MDEx.to_html/1) can supply a document with thousands of nested block quotes, which drives unbounded recursion across the NIF boundary and exhausts the native C stack.

Because the resulting stack overflow is an uncatchable SIGSEGV raised inside a NIF, it cannot be contained by the Erlang runtime. It terminates the operating system process running the BEAM, killing every Elixir and Erlang process on the node, not just the caller that triggered the render. No authentication or special privileges are required.

The vulnerable conversion code was extracted from mdex into the separate mdex_native package starting in mdex 0.12.3. This issue affects mdex from 0.3.0 before 0.12.3 and mdex_native from 0.1.0 before 0.2.3.

Weakness: CWE-674

Which versions are affected by CVE-2026-54888?

2 open source packages ship an affected version, including mdex and mdex_native.

PackageAffectedFixed in
mdex HexFrom 0.3.00.12.3
mdex_native HexFrom 0.1.00.2.3

How do I fix CVE-2026-54888?

Upgrade mdex to 0.12.3 or later.

Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.

Is CVE-2026-54888 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54888 exists.

Sources

Also known as EEF-CVE-2026-54888, GHSA-3w4f-53g2-f66p.

Is CVE-2026-54888 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free