<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 08 Oct 2026 16:55:38 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-105749 — Docling: Unbounded table rowspan/colspan in HTML, JATS, ODS and BoxNote backends causes CPU/memory exhaustion</title>
      <link>https://db.gcve.eu/vuln/cve-2026-105749</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; docling-project docling, docling-project docling-slim&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; docling-project docling, docling-project docling-slim&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-105749</guid>
    </item>
    <item>
      <title>GHSA-cgc7-9qp3-86m3 — Docling: Unbounded table rowspan/colspan in HTML, JATS, ODS and BoxNote backends causes CPU/memory exhaustion</title>
      <link>https://db.gcve.eu/vuln/ghsa-cgc7-9qp3-86m3</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: docling, PyPI: docling-slim&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The HTML, JATS, ODS (OpenDocument spreadsheet) and BoxNote backends accept table `rowspan` / `colspan` values without an upper bound. A few bytes of input, such as `&amp;lt;td rowspan=&amp;#34;100000000&amp;#34;&amp;gt;`, make docling run loops proportional to the declared span and allocate a table grid of the declared size. The result is CPU and memory exhaustion.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;- `docling/backend/html_backend.py` (`_get_cell_spans`) parses span attributes with no upper limit. The cell-filling loop then iterates `row_span × col_span` times.
- `docling/backend/jats_backend.py` and `docling/backend/boxnote_backend.py` fill their tables the same way.
- The OpenDocument spreadsheet path scans the declared span range.
- Export (for example `export_to_markdown()`) materialises the full grid through `TableData.grid` in docling-core.&lt;/p&gt;
&lt;p&gt;`document_timeout` does not bound this. It is checked between pipeline stages, and these backends convert the whole document in a single call. `max_file_size` and `max_num_pages` do not help because the payload is tiny.&lt;/p&gt;
&lt;p&gt;Measured on 2.130.0: a 54-byte HTML file with `rowspan=&amp;#34;1e8&amp;#34;` takes about 4.4 s of CPU, and the time grows linearly with the value. A 52-byte file with `colspan=&amp;#34;3000000&amp;#34;` takes about 23 s and reaches 4.5 GB peak memory during Markdown export.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Denial of service of the converting process from a very small input document. Confidentiality and integrity are not affected.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```html
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;#34;3000000&amp;#34;&amp;gt;x&amp;lt;/td&amp;gt;&amp;lt;/t…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: docling, PyPI: docling-slim&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The HTML, JATS, ODS (OpenDocument spreadsheet) and BoxNote backends accept table `rowspan` / `colspan` values without an upper bound. A few bytes of input, such as `&amp;lt;td rowspan=&amp;#34;100000000&amp;#34;&amp;gt;`, make docling run loops proportional to the declared span and allocate a table grid of the declared size. The result is CPU and memory exhaustion.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;- `docling/backend/html_backend.py` (`_get_cell_spans`) parses span attributes with no upper limit. The cell-filling loop then iterates `row_span × col_span` times.
- `docling/backend/jats_backend.py` and `docling/backend/boxnote_backend.py` fill their tables the same way.
- The OpenDocument spreadsheet path scans the declared span range.
- Export (for example `export_to_markdown()`) materialises the full grid through `TableData.grid` in docling-core.&lt;/p&gt;
&lt;p&gt;`document_timeout` does not bound this. It is checked between pipeline stages, and these backends convert the whole document in a single call. `max_file_size` and `max_num_pages` do not help because the payload is tiny.&lt;/p&gt;
&lt;p&gt;Measured on 2.130.0: a 54-byte HTML file with `rowspan=&amp;#34;1e8&amp;#34;` takes about 4.4 s of CPU, and the time grows linearly with the value. A 52-byte file with `colspan=&amp;#34;3000000&amp;#34;` takes about 23 s and reaches 4.5 GB peak memory during Markdown export.&lt;/p&gt;
&lt;p&gt;### Impact&lt;/p&gt;
&lt;p&gt;Denial of service of the converting process from a very small input document. Confidentiality and integrity are not affected.&lt;/p&gt;
&lt;p&gt;### Proof of concept&lt;/p&gt;
&lt;p&gt;```html
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;#34;3000000&amp;#34;&amp;gt;x&amp;lt;/td&amp;gt;&amp;lt;/t…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-cgc7-9qp3-86m3</guid>
    </item>
  </channel>
</rss>
