Quadratic complexity may lead to a denial of service in cmark-gfm
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Partial Red Hat: 1 without a fix
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and Red Hat. Impact type from CWE-400.
Summary
cmark-gfm is GitHub's fork of cmark, a CommonMark parsing and rendering library and program in C. A polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service. This CVE covers quadratic complexity issues when parsing text which leads with either large numbers of `_` characters. This issue has been addressed in version 0.29.0.gfm.10. Users are advised to upgrade. Users unable to upgrade should validate that their input comes from trusted sources. ### Impact A polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service. ### Proof of concept ``` $ ~/cmark-gfm$ python3 -c 'pad = "_" * 100000; print(pad + "." + pad, end="")' | time ./build/src/cmark-gfm --to plaintext ``` Increasing the number 10000 in the above commands causes the running time to increase quadratically. ### Patches This vulnerability have been patched in 0.29.0.gfm.10. ### Note on cmark and cmark-gfm XXX: TBD [cmark-gfm](https://github.com/github/cmark-gfm) is a fork of [cmark](https://github.com/commonmark/cmark) that adds the GitHub Flavored Markdown extensions. The two codebases have diverged over time, but share a common core. These bugs affect both `cmark` and `cmark-gfm`. ### Credit We would like to thank @gravypod for reporting this vulnerability. ### References https://en.wikipedia.org/wiki/Time_complexity ### For more information If you have any questions or comments about this advisory: * Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA cmark-gfm (github) Fixed in 0.29.0.gfm.10
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat 3scale API Management Platform 2 | Affected | No fix yet |
Timeline
- 2026-10-02 Threatist record created from CVE-2023-26485
References
More GitHub Cmark-gfm vulnerabilities
- TI-2022-08539 Integer overflow in table parsing extension leads to heap memory corruption CVSS 3.1CRITICAL 9.8
- TI-2023-10324 Quadratic complexity may lead to a denial of service in cmark-gfm CVSS 3.1HIGH 7.5
- TI-2023-19072 Quadratic complexity bugs may lead to a denial of service CVSS 3.1HIGH 7.5
- TI-2023-08735 cmark-gfm Quadratic complexity bug in handle_close_bracket may lead to a denial of service CVSS 3.1HIGH 7.5
- TI-2023-08733 Inefficient Quadratic complexity bug in handle_pointy_brace may lead to a denial of service CVSS 3.1HIGH 7.5
- TI-2023-08732 cmark-gfm Quadratic complexity bugs may lead to a denial of service CVSS 3.1HIGH 7.5
Sources
- CVE-2023-26485 · CVE Program
- CVE-2023-26485 · NVD
- FIRST EPSS
- CVE-2023-26485 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences