# CVE-2026-53426: leandrocp MDEx atom-table exhaustion in parse_document

Source: https://junglewise.ai/threats/cve-2026-53426-leandrocp-mdex-atom-table-exhaustion-in-parse-document  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-06-29. Updated: 2026-06-29  
License: CC BY 4.0 with a link back

CVE-2026-53426 · Severity: info · CVSS 8.2 · Published 2026-06-29

A vulnerability in the MDEx Markdown library for Elixir can allow an attacker to crash the entire application server. By providing a specially crafted JSON document, an attacker can exhaust the system's memory for internal identifiers (atoms), which are never cleared. This results in a complete denial-of-service, forcing the entire Erlang virtual machine to shut down and stopping all running processes.

## Quick answers

**Is CVE-2026-53426 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-53426 being exploited in the wild.

**How severe is CVE-2026-53426?** Informational severity, with a CVSS score of 8.2, published 29 June 2026.

**Which products and versions are affected?** leandrocp mdex 0.4.3 to 0.13.1.

**Is there a fix for CVE-2026-53426?** A patch was published on 2026-06-29. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-53426 attacked?** It is attacked with local access, in a software library.

**Am I affected by CVE-2026-53426?** Check whether anything you run is named in the advisory. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Technical details

The MDEx.parse_document/2 function, when processing a {:json, json} source, utilizes a private function json_to_node/1 that passes attacker-controlled 'node_type' values to Module.concat/1. This internally calls String.to_atom/1, interning a new atom for every unique value provided. Because atoms in the Erlang BEAM VM are not garbage collected, a deeply nested JSON document with unique node types can exhaust the default atom table limit (approximately 1 million). Once this limit is reached, the entire Erlang VM aborts. This is an unauthenticated denial-of-service reachable if the application processes untrusted JSON input via MDEx.

## Affected products

- leandrocp mdex 0.4.3 to 0.13.1

## Timeline

- 2026-06-29: advisory
- 2026-06-29: disclosed
- 2026-06-29: patched

## References

- [https://repo.hex.pm/](https://repo.hex.pm/)
- [https://github.com/](https://github.com/)
- [https://cna.erlef.org/cves/CVE-2026-53426.html](https://cna.erlef.org/cves/CVE-2026-53426.html)
- [https://github.com/leandrocp/mdex/commit/00fddf444220a1f1cc0af0a1cab6738804878387](https://github.com/leandrocp/mdex/commit/00fddf444220a1f1cc0af0a1cab6738804878387)
- [https://github.com/leandrocp/mdex/security/advisories/GHSA-923r-7vf4-5vw8](https://github.com/leandrocp/mdex/security/advisories/GHSA-923r-7vf4-5vw8)
