Safeguard
Vulnerability Analysis•

CVE-2026-105750: Medium Local File Exposure in Docling HTML Render

Docling 2.82.0 to 2.118.0 can embed local files in page images when rendering HTML with Playwright. Upgrade to 2.118.1 and review render settings.

Safeguard Security Team
4 min read

CVE-2026-105750 is a Medium severity flaw in Docling, the document conversion library. From 2.82.0 until 2.118.1, HTML rendering with render_page enabled allows file URLs and ignores the enable_local_fetch setting, so crafted HTML can show a local text file in the page image. Upgrade to 2.118.1.

What's affected

  • Package: docling (pip), from 2.82.0 until 2.118.1.
  • Package: docling-slim (pip), from 2.92.0 until 2.118.1, per the advisory.
  • Fixed: 2.118.1.
  • Condition: HTMLBackendOptions with render_page set to true, Playwright installed, and a filesystem Path as the input.
  • Not affected: stream inputs, which use an opaque origin, according to the record.

The record scores this 5.9 Medium and the advisory calls it Moderate, so the two agree. The advisory adds that versions 2.82.0 to 2.90.x did no request filtering in render mode at all, and that from 2.91.0 the browser runs with JavaScript disabled, so disclosure is passive.

How to check if you're exposed

Docling is a Python package, and it also ships as docling-slim, so check both.

pip show docling docling-slim
pip freeze | grep -i docling
grep -ri "docling" requirements*.txt pyproject.toml poetry.lock uv.lock 2>/dev/null

Check services that convert uploaded documents, notebooks, batch jobs and container images. Then check how Docling is configured, because every Docling advisory in this series depends on a specific option or file type, as described above.

Safeguard's free in-browser dependency scan at gold.safeguard.sh/scan reads a manifest or lockfile and shows which packages carry known CVEs, including this one. Nothing is installed and nothing leaves your browser session beyond the scan itself.

Search for the render option and the browser dependency.

grep -rn "render_page" .
pip show playwright

If render_page is never set to true, or Playwright is not installed, the browser rendering path is not in use. If you do render HTML pages from untrusted sources by path, upgrade now.

What to do now

  1. Upgrade docling and docling-slim to 2.118.1 or later.
  2. Convert HTML from untrusted sources as streams rather than as paths where you can, since the record says stream inputs are not affected.
  3. Leave enable_local_fetch off unless you truly need local resources, and understand that fixed versions confine local fetches to the source folder.
  4. Run the render step in a container that holds no sensitive files.
  5. Review stored page images from earlier conversions for unexpected content.
  6. Re-scan your lockfiles after the update.

Why it matters

The record lists CWE-863, incorrect authorization, and CWE-552, files or directories accessible to external parties. The request filter in render mode allowed file URLs without reading the local fetch setting, so the option that is meant to forbid local access did nothing in this mode.

The result is limited by how the browser works. With JavaScript off, an attacker cannot script an upload of the file. Only what the browser draws inside the page viewport ends up in the page image. That is still enough to leak a readable text file such as a configuration file into a document that someone else may see.

The record does not list this CVE as exploited in the wild. It is a good illustration of settings that exist but are not enforced on every code path. The pull request changes render mode so it blocks other local file requests unless the option is enabled.

Quick check

Which inputs are affected?

Only filesystem Path inputs. The record says stream inputs use an opaque origin and are not affected.

What does the fix do?

Per the pull request, render mode always allows the main local HTML document, blocks other local file requests unless enable_local_fetch is set, and then confines them to the source folder.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.