{"id":"CVE-2023-26485","aliases":["DEBIAN-CVE-2023-26485","EUVD-2023-30291","GHSA-r8vr-c48j-fcc5","RSEC-2023-8","UBUNTU-CVE-2023-26485","USN-7319-1"],"status":"published","title":"Quadratic complexity may lead to a denial of service in cmark-gfm","description":"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.\n\n\n\n\n### Impact\n\nA polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service.\n\n### Proof of concept\n\n```\n$ ~/cmark-gfm$ python3 -c 'pad = \"_\" * 100000; print(pad + \".\" + pad, end=\"\")' | time ./build/src/cmark-gfm --to plaintext\n```\n\nIncreasing the number 10000 in the above commands causes the running time to increase quadratically.\n\n### Patches\n\nThis vulnerability have been patched in 0.29.0.gfm.10.\n\n### Note on cmark and cmark-gfm\n\nXXX: TBD\n\n[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`. \n\n### Credit\n\nWe would like to thank @gravypod for reporting this vulnerability.\n\n### References\n\nhttps://en.wikipedia.org/wiki/Time_complexity\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)","severity":{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-11","score":0.01029,"percentile":0.64117,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-400","CWE-407"],"published":"2023-03-31T22:01:16Z","modified":"2026-10-28T02:30:22Z","fixes":[{"ecosystem":"Debian:13","package":"cmark-gfm","fixed_in":["0.29.0.gfm.13-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"cmark-gfm","fixed_in":["0.29.0.gfm.13-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"python-cmarkgfm","fixed_in":["2024.11.20-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"python-cmarkgfm","fixed_in":["2024.11.20-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"r-cran-commonmark","fixed_in":["1.9.1-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"r-cran-commonmark","fixed_in":["1.9.1-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"ruby-commonmarker","fixed_in":["0.23.10-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"ruby-commonmarker","fixed_in":["0.23.10-1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:20.04:LTS","package":"cmark-gfm","fixed_in":["0.29.0.gfm.0-4ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:22.04:LTS","package":"cmark-gfm","fixed_in":["0.29.0.gfm.3-3ubuntu0.1~esm1"],"sources":["osv"]},{"ecosystem":"Ubuntu:Pro:24.04:LTS","package":"cmark-gfm","fixed_in":["0.29.0.gfm.6-6ubuntu0.24.04.1~esm1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.29.0.gfm.13-1","0.29.0.gfm.13-2","0.29.0.gfm.13-3","0.29.0.gfm.13-4","0.29.0.gfm.13-7","0.29.0.gfm.13-7.1","0.29.0.gfm.6-6"]},{"source":"osv","ecosystem":"Debian:13","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.13-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.13-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"python-cmarkgfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.0-3","2024.11.20-1","2025.10.22-1","2025.10.22-2"]},{"source":"osv","ecosystem":"Debian:13","package":"python-cmarkgfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2024.11.20-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"python-cmarkgfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2024.11.20-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"r-cran-commonmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.1-1","1.9.0-1","1.9.1-1","1.9.2-1","1.9.2-2","1.9.5-1","2.0.0-1","2.0.0-2","2.0.0-3"]},{"source":"osv","ecosystem":"Debian:13","package":"r-cran-commonmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.1-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"r-cran-commonmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.1-1"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"ruby-commonmarker","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.23.10-1","0.23.6-1","0.23.9-1","2.10.0-1","2.10.0-2","2.10.1-1","2.8.3-1","2.8.3-2","2.8.3-3","2.8.3-4"]},{"source":"osv","ecosystem":"Debian:13","package":"ruby-commonmarker","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.10-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"ruby-commonmarker","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.23.10-1"}]}]},{"source":"osv","ecosystem":"CRAN","package":"commonmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0.2"},{"fixed":"1.9.2"}]}],"versions":["0.2","0.4","0.5","0.6","0.7","0.8","0.9","1.0","1.1","1.2","1.4","1.5","1.6","1.7","1.8","1.9","1.9.1","1.8.0","1.8.1","1.9.0"],"bundled":7},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.26.1-1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.28.3-1","0.29.0-1ubuntu2","0.29.0-2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.0-4ubuntu0.1~esm1"}]}],"versions":["0.28.3.gfm.20-3","0.29.0.gfm.0-3","0.29.0.gfm.0-4"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.29.0-4","0.30.2-3","0.30.2-4","0.30.2-5"]},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.3-3ubuntu0.1~esm1"}]}],"versions":["0.29.0.gfm.0-6","0.29.0.gfm.2-1","0.29.0.gfm.2-1+really.0.29.0.gfm.0ubuntu1","0.29.0.gfm.2-2","0.29.0.gfm.3-3"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.30.2-6","0.30.2-6build1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.6-6ubuntu0.24.04.1~esm1"}]}],"versions":["0.29.0.gfm.6-6","0.29.0.gfm.6-6build1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.30.2-6build1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.30.2-6build2"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"cmark","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.30.2-6build1","0.30.2-6build2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.0-4ubuntu0.1~esm1"}]}],"versions":["0.28.3.gfm.20-3","0.29.0.gfm.0-3","0.29.0.gfm.0-4"],"bundled":5},{"source":"osv","ecosystem":"Ubuntu:Pro:22.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.3-3ubuntu0.1~esm1"}]}],"versions":["0.29.0.gfm.0-6","0.29.0.gfm.2-1","0.29.0.gfm.2-1+really.0.29.0.gfm.0ubuntu1","0.29.0.gfm.2-2","0.29.0.gfm.3-3"],"bundled":5},{"source":"osv","ecosystem":"Ubuntu:Pro:24.04:LTS","package":"cmark-gfm","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0.29.0.gfm.6-6ubuntu0.24.04.1~esm1"}]}],"versions":["0.29.0.gfm.6-6","0.29.0.gfm.6-6build1"],"bundled":5}],"products":[{"vendor":"github","product":"cmark-gfm"}],"references":[{"url":"https://github.com/github/cmark-gfm/security/advisories/GHSA-r8vr-c48j-fcc5","tags":["x_refsource_CONFIRM","x_transferred","Exploit","Vendor Advisory","advisory","report"]},{"url":"https://github.com/github/cmark-gfm/commit/07a66c9bc341f902878e37d7da8647d6ef150987","tags":["x_refsource_MISC","x_transferred","Patch","fix"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/26xxx/CVE-2023-26485.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2023-26485","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-26485","tags":["advisory","web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-37463","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-24824","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-22486","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-22485","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-22484","tags":["web"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2023-22483","tags":["web"]},{"url":"https://github.com/r-lib/commonmark/issues/26","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2023-26485","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2023-26485","tags":["report"]},{"url":"https://ubuntu.com/security/notices/USN-7319-1","tags":["advisory"]},{"url":"https://ubuntu.com/security/CVE-2022-39209","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-22483","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-22484","tags":["report"]},{"url":"https://ubuntu.com/security/CVE-2023-22486","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2023-26485","title":"Quadratic complexity may lead to a denial of service in cmark-gfm","description":"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.\n\n\n\n\n### Impact\n\nA polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service.\n\n### Proof of concept\n\n```\n$ ~/cmark-gfm$ python3 -c 'pad = \"_\" * 100000; print(pad + \".\" + pad, end=\"\")' | time ./build/src/cmark-gfm --to plaintext\n```\n\nIncreasing the number 10000 in the above commands causes the running time to increase quadratically.\n\n### Patches\n\nThis vulnerability have been patched in 0.29.0.gfm.10.\n\n### Note on cmark and cmark-gfm\n\nXXX: TBD\n\n[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`. \n\n### Credit\n\nWe would like to thank @gravypod for reporting this vulnerability.\n\n### References\n\nhttps://en.wikipedia.org/wiki/Time_complexity\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)\n","status":"published","published":"2023-03-31T22:01:16.35Z","modified":"2025-02-11T17:20:37.921Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"cna"}],"cwes":["CWE-400","CWE-407"],"updated_at":"2026-11-02T14:35:15.434947Z"}],"euvd":[{"id":"EUVD-2023-30291","description":"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.\n\n\n\n\n### Impact\n\nA polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service.\n\n### Proof of concept\n\n```\n$ ~/cmark-gfm$ python3 -c 'pad = \"_\" * 100000; print(pad + \".\" + pad, end=\"\")' | time ./build/src/cmark-gfm --to plaintext\n```\n\nIncreasing the number 10000 in the above commands causes the running time to increase quadratically.\n\n### Patches\n\nThis vulnerability have been patched in 0.29.0.gfm.10.\n\n### Note on cmark and cmark-gfm\n\nXXX: TBD\n\n[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`. \n\n### Credit\n\nWe would like to thank @gravypod for reporting this vulnerability.\n\n### References\n\nhttps://en.wikipedia.org/wiki/Time_complexity\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)\n","status":"published","published":"2023-03-31T22:01:16Z","modified":"2025-02-11T17:20:37Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"updated_at":"2026-11-03T00:03:59.282543Z"}],"nvd":[{"id":"CVE-2023-26485","description":"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.\n\n\n\n\n### Impact\n\nA polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service.\n\n### Proof of concept\n\n```\n$ ~/cmark-gfm$ python3 -c 'pad = \"_\" * 100000; print(pad + \".\" + pad, end=\"\")' | time ./build/src/cmark-gfm --to plaintext\n```\n\nIncreasing the number 10000 in the above commands causes the running time to increase quadratically.\n\n### Patches\n\nThis vulnerability have been patched in 0.29.0.gfm.10.\n\n### Note on cmark and cmark-gfm\n\nXXX: TBD\n\n[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`. \n\n### Credit\n\nWe would like to thank @gravypod for reporting this vulnerability.\n\n### References\n\nhttps://en.wikipedia.org/wiki/Time_complexity\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)\n","status":"published","published":"2023-03-31T23:15:07.25Z","modified":"2026-06-17T05:43:26.41Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high","assessor":"primary"}],"cwes":["CWE-400","CWE-407"],"updated_at":"2026-11-02T14:07:51.883939Z"}],"osv":[{"id":"CVE-2023-26485","title":"Quadratic complexity may lead to a denial of service in cmark-gfm","description":"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.\n\n\n\n\n### Impact\n\nA polynomial time complexity issue in cmark-gfm may lead to unbounded resource exhaustion and subsequent denial of service.\n\n### Proof of concept\n\n```\n$ ~/cmark-gfm$ python3 -c 'pad = \"_\" * 100000; print(pad + \".\" + pad, end=\"\")' | time ./build/src/cmark-gfm --to plaintext\n```\n\nIncreasing the number 10000 in the above commands causes the running time to increase quadratically.\n\n### Patches\n\nThis vulnerability have been patched in 0.29.0.gfm.10.\n\n### Note on cmark and cmark-gfm\n\nXXX: TBD\n\n[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`. \n\n### Credit\n\nWe would like to thank @gravypod for reporting this vulnerability.\n\n### References\n\nhttps://en.wikipedia.org/wiki/Time_complexity\n\n### For more information\n\nIf you have any questions or comments about this advisory:\n\n* Open an issue in [github/cmark-gfm](https://github.com/github/cmark-gfm)\n","status":"published","published":"2023-03-31T22:01:16.35Z","modified":"2026-10-28T02:30:22.417351927Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"}],"cwes":["CWE-400","CWE-407"],"updated_at":"2026-11-02T15:44:31.135751Z"},{"id":"DEBIAN-CVE-2023-26485","description":"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)","status":"published","published":"2023-03-31T23:15:07.25Z","modified":"2026-10-26T18:00:42.100410723Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T15:45:39.369204Z"},{"id":"UBUNTU-CVE-2023-26485","description":"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)","status":"published","published":"2023-03-31T23:15:00Z","modified":"2026-10-17T12:57:16.533232164Z","cvss":[{"version":"3.1","score":5.3,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L","level":"medium"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","level":"high"}],"updated_at":"2026-11-02T16:54:20.198616Z"},{"id":"RSEC-2023-8","title":"Denial of Service (DoS) vulnerabilities","description":"cmark-gfm, GitHub's extended version of the CommonMark library in C, suffers from multiple vulnerabilities affecting versions prior to 0.29.0.gfm.12. Various issues, including polynomial time complexity in multiple components like autolink extension, handle_close_bracket, and parsing of certain text patterns (leading `\u003e`, `-`, `_`), may lead to unbounded resource exhaustion and denial of service. An out-of-bounds read in the `validate_protocol` function was also identified but is considered less harmful. Patches are available in versions 0.29.0.gfm.7, 0.29.0.gfm.10, and 0.29.0.gfm.12. Upgrading is advised, and users unable to upgrade should validate input from trusted sources.","status":"published","published":"2023-10-06T05:00:00.6Z","modified":"2025-05-19T19:43:48.265479Z","updated_at":"2026-11-02T15:53:39.492624Z"},{"id":"USN-7319-1","title":"cmark-gfm vulnerabilities","description":"It was discovered that cmark-gfm's autolink extension did not correctly\nhandle parsing large inputs. An attacker could possibly use this issue\nto cause a denial of service. This issue only affected Ubuntu 20.04 LTS\nand Ubuntu 22.04 LTS. (CVE-2022-39209)\n\nIt was discovered that cmark-gfm did not correctly handle parsing large\ninputs. An attacker could possibly use this issue to cause a denial of\nservice. This issue only affected Ubuntu 22.04 LTS, Ubuntu 24.04 LTS and\nUbuntu 24.10. (CVE-2023-22483)\n\nIt was discovered that cmark-gfm did not correctly handle parsing large\ninputs. An attacker could possibly use this issue to cause a denial of\nservice. This issue only affected Ubuntu 24.04 LTS and Ubuntu 24.10.\n(CVE-2023-22484)\n\nIt was discovered that cmark-gfm did not correctly handle parsing large\ninputs. An attacker could possibly use this issue to cause a denial of\nservice. (CVE-2023-22486, CVE-2023-26485)\n","status":"published","published":"2025-03-03T23:22:29Z","modified":"2026-04-27T17:47:00.261453Z","updated_at":"2026-11-02T16:58:19.988474Z"}]}}
