# CVE-2026-44020: Docling: Unsafe XML Entity Expansion in USPTO Patent Backend

> Attackers can exploit unsafe XML parsing in Docling to read server files, trigger SSRF, or cause denial of service via malicious patent XML files.

- **Severity:** High 7.5 (`CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 24 Jun 2026
- **Updated:** 28 Aug 2026
- **Also known as:** GHSA-m88r-rg27-5xfg, PYSEC-2026-240

## What is CVE-2026-44020?

CVE-2026-44020 is a high-severity vulnerability in docling-project docling, published on 24 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

Docling simplifies document processing by parsing diverse formats and providing integrations with the generative AI ecosystem. From 2.13.0 until 2.74.0, the USPTO patent XML parser used the standard xml.sax.parseString() without protection against XML External Entity (XXE) attacks. An attacker could craft malicious USPTO patent XML files with external entity references that could read arbitrary files from the server filesystem, perform Server-Side Request Forgery (SSRF) attacks, or cause denial of service through entity expansion (Billion Laughs attack). The vulnerability affects three USPTO patent format parsers: ICE (v4.x), Grant v2.5, and Application v1.x. This vulnerability is fixed in 2.74.0.

Weakness: CWE-611 (Improper Restriction of XML External Entity Reference), CWE-776 (Improper Restriction of Recursive Entity References in DTDs)

## Which versions are affected by CVE-2026-44020?

3 open source packages ship an affected version, including docling. It affects 1 product.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `docling` | PyPI | From 2.13.0 | 2.74.0 |
| `docling` | PyPI | From 2.13.0 | 2.74.0 |
| `docling` | PyPI | From 2.13.0 | 2.74.0 |

Products: Docling Docling.

## How do I fix CVE-2026-44020?

Upgrade docling to 2.74.0 or later.

## Is CVE-2026-44020 being exploited?

There is no known exploitation of CVE-2026-44020 in the wild and no public exploit code.

## Other vulnerabilities in docling-project docling

- [CVE-2026-44016](https://insights.sbomify.com/CVE-2026-44016/): Docling: Unsafe Playwright-based HTML Rendering (high 8.2)
- [CVE-2026-105744](https://insights.sbomify.com/CVE-2026-105744/): Docling has arbitrary file read/write (and command execution when shell-escape is enabled) when rendering untrusted TikZ with the opt-in Tectonic engine (high 7.5)
- [CVE-2026-44017](https://insights.sbomify.com/CVE-2026-44017/): Docling: Unsafe Zip Extraction in EasyOCR Model Download (high 7.5)
- [CVE-2026-47214](https://insights.sbomify.com/CVE-2026-47214/): Docling: Unsafe URI and Path Handling in HTML Backend (high 7.1)
- [CVE-2026-105751](https://insights.sbomify.com/CVE-2026-105751/): Docling: Arbitrary local file read via draw:image xlink:href in the OpenDocument backend (medium 6.9)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-44020 and fix it if it is affected.

What it is: CVE-2026-44020 is a high-severity vulnerability in docling-project docling, published on 24 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-44020 in the wild and no public exploit code.

Affected packages and fixed versions:
- docling (PyPI): affected from 2.13.0; fixed in 2.74.0
- docling (PyPI): affected from 2.13.0; fixed in 2.74.0
- docling (PyPI): affected from 2.13.0; fixed in 2.74.0

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-44020/ (Markdown: https://insights.sbomify.com/CVE-2026-44020/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-44020
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-44020
- OSV: https://osv.dev/vulnerability/CVE-2026-44020

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-44020/
Summaries are generated and may contain mistakes; the official description above is the record.
