Sceawere
Vulnerability Detail
CVE-2026-105749UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV
Docling Resource Exhaustion Vulnerability
Vulnerability Metadata
- Severity
- Medium
- Score / CVSS
- 6.5
- Creation Date
- 1h ago
- Vendor
- docling-project
- Product
- docling
- Attack Type
- CWE-400: Uncontrolled Resource Consumption
- Vector String
- CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
- Attack Complexity
- LOW
Narrative and Response
Description
Docling simplifies document processing by parsing diverse formats and providing integrations with the generative AI ecosystem. From 2.0.0 until 2.131.0, the HTML, JATS, OpenDocument spreadsheet, and BoxNote backends, including docling/backend/html_backend.py, docling/backend/jats_backend.py, and docling/backend/boxnote_backend.py, accept the rowspan and colspan attribute values without an upper bound and execute loops or allocate a table grid proportional to the declared span. A very small document can therefore cause sustained CPU use or multi-gigabyte memory allocation, and the document_timeout setting does not interrupt the single backend conversion call. Export through the TableData.grid property can further materialize the oversized grid. This issue is fixed in 2.131.0.
Executive Summary
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Technical Details
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Mitigations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
References
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Additional Metadata
{
"score": "6.5",
"pubDate": "2026-10-05T22:16:57.943Z",
"pubdate": "2026-10-05T22:16:57.943Z",
"executiveSummary": "Docling versions 2.0.0 through 2.131.0 are susceptible to a Resource Exhaustion vulnerability stemming from improper input validation of HTML table attributes.\nThe vulnerability allows remote attackers to trigger excessive CPU utilization and large-scale memory allocation by crafting documents containing malicious rowspan and colspan values.\nThis flaw affects multiple internal backends, including HTML, JATS, OpenDocument, and BoxNote, potentially leading to denial-of-service conditions.\nCrucially, the document_timeout mechanism fails to interrupt the backend conversion process, allowing a relatively small input file to crash or hang the host system.\nExploitation requires no authentication and relies solely on the ability of an attacker to submit a malformed document for processing.\nThe impact is significant, as it can lead to service instability and potential system exhaustion, threatening the availability of the generative AI document processing pipeline.",
"technicalDetails": "The vulnerability exists due to the lack of upper-bound constraints on 'rowspan' and 'colspan' attribute values within the table parsing logic of Docling's backend components. Specifically, affected files include docling/backend/html_backend.py, docling/backend/jats_backend.py, and docling/backend/boxnote_backend.py.\nWhen a document is submitted for conversion, the backend initializes loops and grid structures directly proportional to the dimensions declared in the 'rowspan' and 'colspan' attributes. Because the parser does not sanitize or limit these integers, an attacker can define extremely large table dimensions that exceed available system resources.\nThe exploitation flow proceeds as follows: 1. An attacker crafts a document containing a table element with malicious 'rowspan' or 'colspan' attributes (e.g., set to excessively large integers). 2. The document is submitted to the Docling processing pipeline. 3. Upon reaching the backend parser, the system attempts to allocate a multidimensional grid in memory to represent the table structure. 4. Due to the lack of bounds checking, this allocation leads to massive memory consumption, potentially resulting in an Out-of-Memory (OOM) error. 5. Alternatively, the processing loop iteration over the massive grid results in sustained, high CPU utilization. 6. The process bypasses the 'document_timeout' setting, as the timeout does not effectively intercept or abort the synchronous backend conversion call for these specific operations.\nFurther exposure occurs through the TableData.grid property. If the pipeline attempts to export or materialize this oversized grid, the process triggers an immediate and severe impact on the underlying system's runtime stability. The inability of the timeout mechanism to mitigate this risk ensures that even low-bandwidth requests can result in a successful Denial of Service (DoS) attack, as the server remains locked in a resource-intensive loop until system failure or forced termination."
}