CVE-2026-53426: CWE-770 Allocation of Resources Without Limits or Throttling in leandrocp mdex
Allocation of Resources Without Limits or Throttling vulnerability in leandrocp MDEx allows Excessive Allocation. MDEx.parse_document/2 accepts a {:json, json} source. In lib/mdex.ex, the private json_to_node/1 function passes the attacker-controlled node_type value to Module.concat/1, which calls String.to_atom/1 and interns a brand-new atom for every distinct value. Atoms are never garbage collected on the BEAM, so a crafted JSON document carrying a unique node_type at each (deeply nested) node mints one permanent atom per node. A single document can intern hundreds of thousands of atoms, and a large enough document exhausts the default atom table (around 1,048,576 atoms) and aborts the entire Erlang VM, taking down every process on the node. Any application that passes untrusted input to the {:json, ...} source of MDEx.parse_document is exposed to an unauthenticated denial-of-service. This issue affects mdex from 0.4.3 before 0.13.2.
AI Analysis
Technical Summary
The mdex library's parse_document/2 function accepts a JSON source that is parsed by a private function json_to_node/1. This function converts a node_type value from the JSON into an atom using String.to_atom/1 via Module.concat/1. Because atoms in the BEAM VM are never garbage collected, an attacker can craft a deeply nested JSON document with unique node_type values at each node, causing the system to intern a new atom per node. This can exhaust the atom table limit (approximately 1,048,576 atoms), causing the Erlang VM to abort and crash all processes on the node. This vulnerability affects mdex versions from 0.4.3 up to but not including 0.13.2 and allows unauthenticated denial-of-service via resource exhaustion.
Potential Impact
Successful exploitation results in denial-of-service by exhausting the Erlang VM's atom table, causing the entire VM to abort and all hosted processes to crash. This impacts availability of any application using vulnerable mdex versions that parse untrusted JSON input via the {:json, ...} source in parse_document/2. There is no indication of confidentiality or integrity impact. The vulnerability is unauthenticated and can be triggered remotely if untrusted JSON input is processed.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted JSON input to mdex.parse_document/2 with the {:json, ...} source. Consider implementing input validation or limiting JSON complexity to prevent excessive atom creation. Monitor vendor channels for updates and apply official patches once released.
CVE-2026-53426: CWE-770 Allocation of Resources Without Limits or Throttling in leandrocp mdex
Description
Allocation of Resources Without Limits or Throttling vulnerability in leandrocp MDEx allows Excessive Allocation. MDEx.parse_document/2 accepts a {:json, json} source. In lib/mdex.ex, the private json_to_node/1 function passes the attacker-controlled node_type value to Module.concat/1, which calls String.to_atom/1 and interns a brand-new atom for every distinct value. Atoms are never garbage collected on the BEAM, so a crafted JSON document carrying a unique node_type at each (deeply nested) node mints one permanent atom per node. A single document can intern hundreds of thousands of atoms, and a large enough document exhausts the default atom table (around 1,048,576 atoms) and aborts the entire Erlang VM, taking down every process on the node. Any application that passes untrusted input to the {:json, ...} source of MDEx.parse_document is exposed to an unauthenticated denial-of-service. This issue affects mdex from 0.4.3 before 0.13.2.
CVSS v4.0
Score 8.2high
Affected software
cpe:2.3:a:leandrocp:mdex:*:*:*:*:*:*:*:*Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The mdex library's parse_document/2 function accepts a JSON source that is parsed by a private function json_to_node/1. This function converts a node_type value from the JSON into an atom using String.to_atom/1 via Module.concat/1. Because atoms in the BEAM VM are never garbage collected, an attacker can craft a deeply nested JSON document with unique node_type values at each node, causing the system to intern a new atom per node. This can exhaust the atom table limit (approximately 1,048,576 atoms), causing the Erlang VM to abort and crash all processes on the node. This vulnerability affects mdex versions from 0.4.3 up to but not including 0.13.2 and allows unauthenticated denial-of-service via resource exhaustion.
Potential Impact
Successful exploitation results in denial-of-service by exhausting the Erlang VM's atom table, causing the entire VM to abort and all hosted processes to crash. This impacts availability of any application using vulnerable mdex versions that parse untrusted JSON input via the {:json, ...} source in parse_document/2. There is no indication of confidentiality or integrity impact. The vulnerability is unauthenticated and can be triggered remotely if untrusted JSON input is processed.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until an official fix is available, avoid passing untrusted JSON input to mdex.parse_document/2 with the {:json, ...} source. Consider implementing input validation or limiting JSON complexity to prevent excessive atom creation. Monitor vendor channels for updates and apply official patches once released.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- EEF
- Date Reserved
- 2026-06-09T11:01:47.529Z
- Cvss Version
- 4.0
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a42c94c27e9c797196503d0
Added to database: 06/29/2026, 19:36:44 UTC
Last enriched: 06/29/2026, 19:51:20 UTC
Last updated: 08/13/2026, 00:41:12 UTC
Views: 103
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.