Service interruption via quadratic opener-list traversal
Published Jan 24, 2023 · Updated Mar 10, 2025
Inefficient algorithmic complexity in GitHub cmark-gfm before 0.29.0.gfm.7 allows attackers to exhaust CPU via crafted Markdown. In handle_close_bracket, the is_image logic repeatedly walks the opener list to its beginning for each repeated ![ sequence, producing quadratic parsing time. Any application that parses attacker-controlled Markdown can hang or become unavailable while processing a sufficiently large document.
Summary
What happened
Inefficient algorithmic complexity in GitHub cmark-gfm before 0.29.0.gfm.7 allows attackers to exhaust CPU via crafted Markdown. In handle_close_bracket, the is_image logic repeatedly walks the opener list to its beginning for each repeated ![ sequence, producing quadratic parsing time. Any application that parses attacker-controlled Markdown can hang or become unavailable while processing a sufficiently large document.
The record
- CVE
- CVE-2023-22486
- Published
- Jan 24, 2023
- Updated
- Mar 10, 2025
- Vendor
- Product
- cmark-gfm
- Classifications
- CWE-400, CWE-407, T1499.004
- Attack vector
- network
- Privileges
- unauthenticated
Timeline
How it unfolded
- Jan 24, 2023CVE publishedPublication date reported by the CVE source.
- Mar 10, 2025Record updatedLatest update available in the CVE record.
Exploitability
Present is not the same as exploitable
Compare your product and version with the public record. A matching version still requires validation against your environment.
Is a vulnerable build present?
Compare these published version ranges with your installed build and any vendor patches.
- Affected versionversion=< 0.29.0.gfm.7
What conditions does exploitation require?
What is affected?
Published CVSS scores
CVSS describes severity. EPSS estimates exploitation probability.
Attacks
What attackers are doing with it
Daily unique IPs observed by Shadowserver honeypots for known exploited vulnerabilities (KEVs). Missing observations do not establish an absence of attacks.
Weakness, pattern, technique
Public exploit references
- GitHub advisory crafted-Markdown proof of conceptproof of concept · demonstrated
Labels summarize the accepted research assessment. They do not indicate a test against your environment.
Technologies
Your stack
See the directory against your own environment.
Your stack
Check the software in your environment
Book a demo to see how Hinoki identifies affected software and validates exploitability in your environment.
Book a demo