CVE-2024-22051: CommonMarker Integer Overflow Vulnerability
Impact
CommonMarker uses cmark-gfm for rendering Github Flavored Markdown. An integer overflow in cmark-gfm's table row parsing may lead to heap memory corruption when parsing tables who's marker rows contain more than UINT16MAX columns. The impact of this heap corruption ranges from Information Leak to Arbitrary Code Execution.
If affected versions of CommonMarker are used for rendering remote user controlled markdown, this vulnerability may lead to Remote Code Execution (RCE).
Patches
This vulnerability has been patched in the following CommonMarker release:
- v0.23.4
Workarounds
The vulnerability exists in the table markdown extensions of cmark-gfm. Disabling any use of the table extension will prevent this vulnerability from being triggered.
References
- https://github.com/github/cmark-gfm/security/advisories/GHSA-mc3g-88wq-6f4x
Acknowledgements
We would like to thank Felix Wilhelm of Google's Project Zero for reporting this vulnerability
For more information
If you have any questions or comments about this advisory:
Open an issue in CommonMarker
Other sources
CommonMarker versions prior to 0.23.4 are at risk of an integer overflow vulnerability. This vulnerability can result in possibly unauthenticated remote attackers to cause heap memory corruption, potentially leading to an information leak or remote code execution, via parsing tables with marker rows that contain more than UINT16MAX columns.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rubygems/commonmarkerto a version that resolves this vulnerability.Fixed in 0.23.4 - Upgrade
Upgrade
CommonMarkerto a version that resolves this vulnerability.Fixed in 0.23.4 - Configuration
Disable the table markdown extension in cmark-gfm (via CommonMarker) so table parsing cannot be triggered.
cmark-gfm (CommonMarker table markdown extension) table extension = disabled
Event History
Frequently Asked Questions
What is the severity of CVE-2024-22051?
CVE-2024-22051 has a high severity rating due to the potential for heap memory corruption.
How do I fix CVE-2024-22051?
To fix CVE-2024-22051, upgrade the cmark-gfm to version 0.28.3.gfm.21 or later, and commonmarker to version 0.23.4.
What software is affected by CVE-2024-22051?
The vulnerability CVE-2024-22051 affects commonmarker versions prior to 0.23.4 and cmark-gfm versions up to 0.28.3.gfm.21.
What type of vulnerability is CVE-2024-22051?
CVE-2024-22051 is an integer overflow vulnerability that can lead to heap memory corruption.
Who is responsible for the vulnerabilities in CVE-2024-22051?
The vulnerabilities in CVE-2024-22051 are associated with the GitHub projects cmark-gfm and commonmarker.