Docling: Arbitrary local file read via draw:image xlink:href in the OpenDocument backend
Docling simplifies document processing by parsing diverse formats and providing integrations with the generative AI ecosystem. From 2.107.0 until 2.120.3, docling/backend/opendocument_backend.py uses the xlink:href attribute value of a draw:image element as a filesystem path when the referenced part is not found in the document archive. The _image_ref_from_odf_image function reads that attacker-controlled path without a scheme check, extraction-directory confinement, or the enable_local_fetch setting used by other backends. Readable files that Pillow can decode as images are embedded in converted output, and other existing paths can be distinguished through the attempted read. This issue is fixed in 2.120.3.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-105751
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 01:28 UTC · Revision 1
Source evidence
Docling: Arbitrary local file read via draw:image xlink:href in the OpenDocument backend
core-osv · Original sourcePublished 5 Oct 2026, 21:40 UTC
Docling simplifies document processing by parsing diverse formats and providing integrations with the generative AI ecosystem. From 2.107.0 until 2.120.3, docling/backend/opendocument_backend.py uses the xlink:href attribute value of a draw:image element as a filesystem path when the referenced part is not found in the document archive. The _image_ref_from_odf_image function reads that attacker-controlled path without a scheme check, extraction-directory confinement, or the enable_local_fetch setting used by other backends. Readable files that Pillow can decode as images are embedded in converted output, and other existing paths can be distinguished through the attempted read. This issue is fixed in 2.120.3.
osv:CVE-2026-105751
Complete source record
{
"id": "146f92a1b9ff35f57c17f22270a7d50eb7d87dd11694072c0c37b4f9ab628ac2",
"url": "https://osv.dev/vulnerability/CVE-2026-105751",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Docling: Arbitrary local file read via draw:image xlink:href in the OpenDocument backend",
"summary": "Docling simplifies document processing by parsing diverse formats and providing integrations with the generative AI ecosystem. From 2.107.0 until 2.120.3, docling/backend/opendocument_backend.py uses the xlink:href attribute value of a draw:image element as a filesystem path when the referenced part is not found in the document archive. The _image_ref_from_odf_image function reads that attacker-controlled path without a scheme check, extraction-directory confinement, or the enable_local_fetch setting used by other backends. Readable files that Pillow can decode as images are embedded in converted output, and other existing paths can be distinguished through the attempted read. This issue is fixed in 2.120.3.",
"evidence": "osv:CVE-2026-105751",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-105751",
"aliases": [
"CVE-2026-105751",
"GHSA-4xhp-xg4w-8ppm",
"PYSEC-2026-4207"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/VA:N/SC:L/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/docling-project/docling",
"type": "GIT",
"events": [
{
"introduced": "2147370b5a2611ffb93ed636210c015cf67ffafd"
},
{
"fixed": "46a1103b8c4adc6bbde1e30ec48fd0f7142d5600"
},
{
"fixed": "6ee9965adfc364b3696a67c825ec2f0d9cee4311"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:docling:docling:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.107.0"
},
{
"fixed": "2.120.3"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "6ee9965adfc364b3696a67c825ec2f0d9cee4311"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "46a1103b8c4adc6bbde1e30ec48fd0f7142d5600"
}
],
"source": "REFERENCES_TAG",
"original_tag": "v2.120.3"
}
]
}
}
],
"versions": [
"v2.120.2",
"v2.120.1",
"v2.120.0",
"v2.119.0",
"v2.118.1",
"v2.118.0",
"v2.117.0",
"v2.116.0",
"v2.115.0",
"v2.114.0",
"v2.113.0",
"v2.112.0",
"v2.111.0",
"v2.110.0",
"v2.109.0",
"v2.108.0",
"v2.107.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-105751.json"
}
}
],
"modified": "2026-10-28T02:30:45.632209101Z",
"provider": "osv",
"references": [
"https://github.com/docling-project/docling/releases/tag/v2.120.3",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105751.json",
"https://github.com/docling-project/docling/security/advisories/GHSA-4xhp-xg4w-8ppm",
"https://nvd.nist.gov/vuln/detail/CVE-2026-105751",
"https://github.com/docling-project/docling/commit/6ee9965adfc364b3696a67c825ec2f0d9cee4311",
"https://github.com/docling-project/docling/pull/4015"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/105xxx/CVE-2026-105751.json"
}
},
"related_cves": [
{
"value": "CVE-2026-105751",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 513860,
"published_at": "2026-10-05T21:40:45.997+00:00"
}