Categories
CVE-2026-105748 medium CVSS 4.3

Vulnerability in docling (CVE-2026-105748)

Summary

Vulnerability in docling (CVE-2026-105748). Risk of unauthorized operations or information disclosure. Exploitable via DoclingDocument. Mitigation: upgrade to 2.131.0 or later.

Original description

The description as published by the source.

Summary

docling accepts serialized DoclingDocument JSON as an input format (InputFormat.JSON_DOCLING, enabled by default). A crafted JSON file can set a picture's image uri to a local file path. When the converted document is exported with embedded images (ImageRefMode.EMBEDDED, the CLI default for Markdown and HTML), the referenced file is read and embedded as base64 in the output.

Details

docling/backend/json/docling_json_backend.py validates the JSON into a DoclingDocument without checking image references. The file is then read by docling-core:

  • DoclingDocument._with_embedded_pictures opens file:// and plain-path URIs with PIL.
  • ImageRef.pil_image checks allow_image_file_uri for file:// URIs but not for plain Path values. docling's picture enrichment models load images through this property.

Only files that PIL can decode as an image are disclosed. Other files, such as text files or keys, fail to decode and are not embedded. The different error behaviour does reveal whether a path exists.

Impact

Disclosure of image files readable by the converting process (for example other users' uploads or page images in a shared service), and disclosure of whether a local path exists.

Proof of concept

from pathlib import Path
from docling_core.types.doc import DoclingDocument, ImageRef
from docling_core.types.doc.base import Size

doc = DoclingDocument(name="poc")
doc.add_picture(image=ImageRef(mimetype="image/png", dpi=72, s…

Source: NIST National Vulnerability Database NVD GitHub Advisory

Auto-generated summary

Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.

A vulnerability tracked as CVE-2026-105748 has been found in docling.
Attackers can target a specific entry point like DoclingDocument over the network to misuse the product.
Risk of unauthorized operations or information disclosure. CVSS score: 4.3/10.
What to do: upgrade docling to 2.131.0 or later.
If unsure, ask your IT team or search "docling CVE-2026-105748" on the vendor's site.

CVE-2026-105748 (docling) — CWE-73 / CVSS v3 4.3
Attack vector: remote (network-reachable) / unauthenticated
Attack surface: DoclingDocument / InputFormat.JSON_DOCLING / uri / ImageRefMode.EMBEDDED
Patched: 2.131.0 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.

❓ What is the problem

A vulnerability (CWE-73) exists in docling. Attackers reach the vulnerable code path via DoclingDocument without authentication.

📍 Affected scope

Check the vendor advisory for the affected versions of docling. Attack surface: DoclingDocument / InputFormat.JSON_DOCLING / uri / ImageRefMode.EMBEDDED.

🔥 Severity

Severity: Medium (CVSS 4.3/10). Risk of unauthorized operations or information disclosure.

🔧 How to fix

Update to 2.131.0.

🛡️ Workaround

Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.

🔍 Detection

Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'docling' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.

Response actions

Concrete steps and command examples for SOC/SRE teams to execute in order

  1. 1
    Identify exposure identify
    grep -r 'docling' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で docling を grep し、稼働しているサービス・バージョンを把握する。

  2. 2
    Apply patch patch
    Upgrade docling to 2.131.0

    ステージング環境で 2.131.0 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。

  3. 3
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Affected packages

pip docling
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.131.0"}]}]
pip docling-slim
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.131.0"}]}]
PyPI docling
[{"type":"ECOSYSTEM","events":[{"introduced":"2.16.0"},{"fixed":"2.131.0"}]}]
PyPI docling-slim
[{"type":"ECOSYSTEM","events":[{"introduced":"2.92.0"},{"fixed":"2.131.0"}]}]

References

We use cookies for analytics and ad measurement. This setting applies to all Game co., Ltd. sites. Details