CVE-2023-26485

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-26485
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-26485.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-26485
Related
Published
2023-03-31T23:15:07Z
Modified
2025-05-03T04:54:40.430522Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
[none]
Details

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 is a fork of 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:

References

Affected packages

Debian:11 / cmark-gfm

Package

Name
cmark-gfm
Purl
pkg:deb/debian/cmark-gfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.29.0.gfm.0-6
0.29.0.gfm.2-1
0.29.0.gfm.2-2
0.29.0.gfm.3-3
0.29.0.gfm.6-2
0.29.0.gfm.6-2.1
0.29.0.gfm.6-3
0.29.0.gfm.6-4
0.29.0.gfm.6-5
0.29.0.gfm.6-6
0.29.0.gfm.13-1
0.29.0.gfm.13-2
0.29.0.gfm.13-3
0.29.0.gfm.13-4

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / cmark-gfm

Package

Name
cmark-gfm
Purl
pkg:deb/debian/cmark-gfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.29.0.gfm.6-6
0.29.0.gfm.13-1
0.29.0.gfm.13-2
0.29.0.gfm.13-3
0.29.0.gfm.13-4

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / cmark-gfm

Package

Name
cmark-gfm
Purl
pkg:deb/debian/cmark-gfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.29.0.gfm.13-1

Affected versions

0.*

0.29.0.gfm.6-6

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:11 / python-cmarkgfm

Package

Name
python-cmarkgfm
Purl
pkg:deb/debian/python-cmarkgfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.4.2-1
0.7.0-1
0.8.0-1
0.8.0-2
0.8.0-3

2024.*

2024.11.20-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / python-cmarkgfm

Package

Name
python-cmarkgfm
Purl
pkg:deb/debian/python-cmarkgfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.8.0-3

2024.*

2024.11.20-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / python-cmarkgfm

Package

Name
python-cmarkgfm
Purl
pkg:deb/debian/python-cmarkgfm?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
2024.11.20-1

Affected versions

0.*

0.8.0-3

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:11 / r-cran-commonmark

Package

Name
r-cran-commonmark
Purl
pkg:deb/debian/r-cran-commonmark?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

1.*

1.7-2
1.8.0-1
1.8.1-1
1.9.0-1
1.9.1-1
1.9.2-1
1.9.2-2
1.9.5-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / r-cran-commonmark

Package

Name
r-cran-commonmark
Purl
pkg:deb/debian/r-cran-commonmark?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

1.*

1.8.1-1
1.9.0-1
1.9.1-1
1.9.2-1
1.9.2-2
1.9.5-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / r-cran-commonmark

Package

Name
r-cran-commonmark
Purl
pkg:deb/debian/r-cran-commonmark?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
1.9.1-1

Affected versions

1.*

1.8.1-1
1.9.0-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:11 / ruby-commonmarker

Package

Name
ruby-commonmarker
Purl
pkg:deb/debian/ruby-commonmarker?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.21.0-1
0.21.0-2
0.21.0-3
0.23.2-1
0.23.2-2
0.23.4-1
0.23.6-1~bpo11+1
0.23.6-1
0.23.9-1
0.23.10-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:12 / ruby-commonmarker

Package

Name
ruby-commonmarker
Purl
pkg:deb/debian/ruby-commonmarker?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected

Affected versions

0.*

0.23.6-1
0.23.9-1
0.23.10-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Debian:13 / ruby-commonmarker

Package

Name
ruby-commonmarker
Purl
pkg:deb/debian/ruby-commonmarker?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.23.10-1

Affected versions

0.*

0.23.6-1
0.23.9-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Git / github.com/github/cmark-gfm

Affected ranges

Type
GIT
Repo
https://github.com/github/cmark-gfm
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed

Affected versions

0.*

0.27.1.gfm.2
0.27.1.gfm.3
0.27.1.gfm.4
0.28.0.gfm.10
0.28.0.gfm.11
0.28.0.gfm.5
0.28.0.gfm.6
0.28.0.gfm.7
0.28.0.gfm.8
0.28.0.gfm.9
0.28.3.gfm.12
0.28.3.gfm.13
0.28.3.gfm.14
0.28.3.gfm.15
0.28.3.gfm.16
0.28.3.gfm.17
0.28.3.gfm.18
0.28.3.gfm.19
0.28.3.gfm.20
0.29.0.gfm.0
0.29.0.gfm.1
0.29.0.gfm.2
0.29.0.gfm.3
0.29.0.gfm.4
0.29.0.gfm.5
0.29.0.gfm.6
0.29.0.gfm.7
0.29.0.gfm.8
0.29.0.gfm.9