CVE-2026-105749: Docling Unbounded Table Rowspan/Colspan Vulnerability Leading to CPU and Memory Exhaustion
Summary
CVE-2026-105749: The HTML, JATS, ODS (OpenDocument spreadsheet) and BoxNote backends accept table rowspan / colspan values without an upper bound. Affects docling versions >= 2.0.0, < 2.131.0. Fixed in 2.131.0. How to fix ↓
Also tracked for
- docling-slim · PyPI
The same CVE-2026-105749 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
Docling is an open-source document conversion tool that supports various formats, including HTML, JATS, ODS, and BoxNote. It is designed to facilitate the conversion of documents into different formats while maintaining the integrity of the content. However, it has a vulnerability that allows unbounded values for table attributes 'rowspan' and 'colspan', which can lead to excessive resource consumption during document processing.
Vulnerability Detail
The vulnerability arises from the lack of upper limits on the 'rowspan' and 'colspan' attributes in the HTML, JATS, ODS, and BoxNote backends of Docling. This oversight allows users to input extremely high values, such as 'rowspan="100000000"', causing the application to enter loops proportional to the declared span and allocate a massive table grid. Consequently, this leads to CPU and memory exhaustion, resulting in denial of service for the converting process. The issue is particularly severe as it can be triggered by very small input documents, and it does not get mitigated by existing timeout or size restrictions.
How To Fix
Latest published version: 2.142.0 as of 22 Oct 2026
pip install --upgrade "docling==2.142.0"
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
2.131.0
This is the first release that contains the fix.
pip install --upgrade "docling==2.131.0"
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
For users unable to upgrade to the patched version, it is recommended to run conversions of untrusted documents in a separate process with memory and CPU-time limits. Additionally, restrict 'allowed_formats' to those not affected by this vulnerability.
Conclusion
The CVE-2026-105749 vulnerability in Docling allows for unbounded table 'rowspan' and 'colspan' values, leading to potential CPU and memory exhaustion. Users are advised to upgrade to version 2.131.0 or later to mitigate this issue. For those unable to upgrade, alternative workarounds are available to reduce risk.
See every vulnerability recorded for docling →
FAQ
The CVSS score of this vulnerability is 6.5, indicating a moderate severity level.
You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability without needing to sign up.
The vulnerability affects documents processed through the HTML, JATS, ODS, and BoxNote backends of Docling.
No, the vulnerability primarily affects the availability of the converting process, with no impact on data confidentiality or integrity.
If upgrading is not possible, consider running conversions in a controlled environment with resource limits or restrict the formats to those not impacted by the vulnerability.
References
Related vulnerabilities
Recent vulnerabilities recorded for docling.