Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft DoclingDocument with plain-path ImageRef
-
ExploitVictim service loads untrusted document
-
ExecutionExport EMBEDDED or render to HTML
-
ImpactLocal image leaked as base64, path existence revealed
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V5 - File Handling File name/path control
|
| Exploitation Conditions | Exploitation requires the target application to (a) load an attacker-supplied DoclingDocument (JSON or YAML) from an untrusted source, and (b) subsequently export it with ImageRefMode.EMBEDDED or render it to HTML - these export/render steps are what trigger the local file read. The specific bypass is that supplying a plain filesystem path (instead of a file:// URI) in the ImageRef evades the settings.allow_image_file_uri check, which in the vulnerable code only guarded the file:// scheme. Limiting factors: the leaked file must be parseable as an image by PIL and is subject to settings.max_image_decoded_size, so arbitrary non-image files are not disclosed wholesale (though path existence is still revealed via error behavior); exploitation depends on passive interaction by the processing pipeline (UI:P) rather than purely remote, unattended triggering; and impact is read-only disclosure with no write/execute capability. |
| Impact | This is a medium-severity information-disclosure issue, not a top-tier priority. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:L) scores 5.3: network-reachable and unauthenticated (PR:N), but it hinges on passive user/application interaction (UI:P) - a victim service must actually export the attacker's DoclingDocument with ImageRefMode.EMBEDDED or render it to HTML before anything leaks. Impact is confined to confidentiality at LOW (VC:L, VI:N, VA:N): the attacker reads local image files and confirms path existence, with no integrity or availability effect and no code execution. No EPSS score, KEV listing, or POC was provided in the input, so exploitation likelihood cannot be quantified from the data; per the precision rules, no public exploit is identified at time of analysis. Note the signals are internally consistent (medium CVSS, no KEV, no POC) and point to a genuine but bounded risk that matters mainly for services that ingest untrusted DoclingDocument JSON/YAML; for closed pipelines processing only trusted documents the real-world risk is low. One caveat: the input 'Authentication Bypass' tag overstates the issue - CWE-73 and the diff show a bypass of the allow_image_file_uri security gate, not of any authentication mechanism. |
| Exploit ScenarioDerived | An attacker crafts a DoclingDocument JSON or YAML in which an ImageRef uses a plain filesystem path (e.g. /etc/ssl/… or a sensitive image on the host) rather than a file:// URI, evading the allow_image_file_uri gate. When a service built on docling-core loads that untrusted document and exports it with ImageRefMode.EMBEDDED or renders it to HTML, the local file is read and embedded as base64 in the output, disclosing its contents and confirming the path exists. No public exploit is identified at time of analysis; the attack requires the processing application to perform the embedded export or HTML render (UI:P). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Local file disclosure in docling-core through 2.102.0 allows remote attackers to make crafted DoclingDocument JSON or YAML embed readable local images as base64 when the document is exported with ImageRefMode.EMBEDDED or rendered to HTML. The bypass supplies plain filesystem paths in ImageRef URIs, evading the allow_image_file_uri gate that in the vulnerable code only guarded file:// URIs. Impact is limited to PIL-parseable images within settings.max_image_decoded_size, though path existence can also be inferred from error behavior; no public exploit was identified at time of analysis.
RemediationAI
Apply the upstream fix in https://github.com/docling-project/docling-core/pull/900; a released patched version is not independently confirmed, so verify the package version before rollout. Until upgraded, do not load DoclingDocument JSON or YAML from untrusted sources, and sanitize or reject ImageRef URIs that are plain filesystem paths or file:// URIs before any export or render step. Avoid ImageRefMode.EMBEDDED and HTML rendering for untrusted documents, recognizing that this changes output by omitting or altering image handling. If untrusted documents must be processed, run docling-core in a sandbox or container with minimal filesystem access and restrict readable image files, noting that this limits exposure but does not fix the bypass. Do not set DOCLINGCORE_ALLOW_IMAGE_FILE_URI=true for untrusted content; after patching, keep the default disabled and call load_local_images() only for explicitly trusted documents. Also treat image-loading errors as potential path-existence leaks when handling attacker-supplied documents.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
docling-core is a Python document-representation library whose DoclingDocument model includes ImageRef objects that may point to images by data URI, remote URI, file:// URI, or plain filesystem Path. The vulnerability is CWE-73 (External Control of File Name or Path): in versions through 2.102.0, the settings.allow_image_file_uri check was applied only when an ImageRef URI was an AnyUrl with the file scheme, while the Path branch opened the referenced local file directly with PILImage. During export with ImageRefMode.EMBEDDED or HTML rendering, the loaded image bytes are base64-encoded into the output, turning an attacker-controlled document field into a local file read. The upstream fix refactors path resolution so both file:// URIs and plain filesystem paths pass through the same gate, and adds explicit opt-ins such as DOCLINGCORE_ALLOW_IMAGE_FILE_URI and DoclingDocument.load_local_images() for trusted content. The supplied CPE cpe:2.3:a:docling-project:docling-core:*:*:*:*:*:*:*:* indicates the affected package line; the assessed CVSS:3.1 vector is AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N, so the issue is remote-triggerable but requires victim-side document loading and export/render interaction.
Know when Docling Core gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Attacker-supplied document is delivered over the network (AV:N) with no privileges (PR:N), but a victim pipeline must export/render it (UI:R); only limited local image/path confidentiality is exposed (C:L, I:N, A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
docling-core through 2.102.0 contains a local file disclosure vulnerability that allows attackers to read local images by supplying plain filesystem paths in ImageRef URIs, bypassing the allow_image_file_uri gate. Attackers can submit crafted DoclingDocument JSON or YAML that, when exported with ImageRefMode.EMBEDDED or rendered to HTML, embeds readable local image files as base64 and reveals path existence.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-104402
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB