RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0414

Exponential event growth with ENABLE_WIKILINKS

Reported
Issued
Package
pulldown-cmark (crates.io)
Type
Vulnerability
Categories
Keywords
#markdown #wikilinks #memory-exhaustion
References
CVSS Score
7.5 HIGH
CVSS Details
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality Impact
None
Integrity Impact
None
Availability Impact
High
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Patched
  • >=0.13.5
Unaffected
  • <0.13.0

Description

When Options::ENABLE_WIKILINKS is enabled, a wikilink with a pipe separator and empty display text, such as [[a|]], leaks its child node's sibling chain into the content that follows it. Each such link roughly doubles the number of events the parser yields for the rest of the document, so output grows exponentially with input size: 16 repetitions of [[a|]] (112 bytes) yield 327,676 events, where the fixed parser yields 65. A document of a few kilobytes is enough to exhaust memory in a process that collects the events or renders them to HTML.

Applications that parse untrusted Markdown with ENABLE_WIKILINKS set, including through Options::all(), are affected. The option is off by default. Parsing without it is not affected.

The flaw was fixed in #1102 and released in 0.13.5.

Advisory available under CC0-1.0 license.