flawopen.com/Teardowns/cve-2026-105751-docling-odf-file-disclosure
CVE-2026-105751: Docling-ODF-Dateioffenlegung
Das ODF-Backend von Docling konnte einen Bildverweis aus einem Dokument als lokalen Pfad behandeln und außerhalb des Archivs lesen. Aktualisieren Sie auf 2.120.3; der Fix verwendet die gemeinsam genutzte Komponente zur Ressourcensteuerung.
CVSS-Vektor
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:N/VA:N/SC:L/SI:N/SA:NEine Bibliothekarin sucht ein Bild in einem Sammelalbum. Fehlt es dort, öffnet der fehlerhafte Leser den Aktenschrank unter dem Pfad auf dem Albumetikett, ohne die Bibliotheksregel gegen lokale Abrufe zu prüfen. Der Fix führt den Leser über dieselbe geschützte Ressourcenausgabe wie bei anderen Dokumentformaten.
Kernkonzepte & Begriffe
OpenDocument Format (ODF)- Formatfamilie für Office-Dokumente, darunter .odt-Textdateien. Docling liest Bildverweise aus dem XML des Dokuments.
draw:image- ODF-XML-Element für ein Bild. Der Wert xlink:href bezeichnet die Ressource.
xlink:href- Ressourcenverweis in einem ODF-Bildelement. Er stammt aus dem Dokument und darf keine Dateisystemberechtigung festlegen.
ImageResourceLoader- Gemeinsam genutzter Docling-Bildlader. Er setzt lokale und entfernte Abrufoptionen, Pfadauflösung und Sicherheitsprüfungen entfernter URLs um.
enable_local_fetch- Option dafür, ob unterstützte Backends lokale Bildressourcen laden dürfen. Umgeht ein Backend den gemeinsamen Loader, umgeht es auch diese Kontrolle.
Framework-Zuordnungen
- CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-22
Ursachenanalyse
In betroffenen Docling-Versionen suchte _image_ref_from_odf_image() zuerst die draw:image-Ressource im ODF-Archiv. Liefert diese Suche keine Bytes, wandelte der Fallback das vom Dokument gesteuerte xlink:href direkt in Path um und rief bei vorhandenem Pfad read_bytes() auf. Dadurch wurde ImageResourceLoader umgangen: Die ODF-Verarbeitung setzte weder enable_local_fetch noch enable_remote_fetch oder die gemeinsamen Regeln zur Ressourcenauflösung durch. Der Bildtypfilter akzeptierte außerdem einen leeren Suffix und damit Pfade ohne Erweiterung. Der Dateizugriff kann vor der Bilddekodierung stattfinden; die Offenlegung im resultierenden Dokument ist belegt, wenn sich die Bytes als Bild dekodieren lassen. Der Herstellerhinweis beschreibt beliebiges lokales Lesen und die Offenlegung decodierbarer Bilddaten in Doclings Ausgabeformaten. Das CVE betrifft ein bereitgestelltes Dokument, das von einem Prozess mit lokalem Dateizugriff konvertiert wird; es belegt nicht, dass jede Docling-Installation aus dem Netzwerk erreichbar ist. Der Fix leitet externe Verweise ohne lokalen Basispfad an ImageResourceLoader.load_image_data() weiter, reicht den Loader durch die ODF-Verarbeitung und entfernt den leeren Suffix aus den zulässigen Bildendungen. Der gemeinsame Loader verweigert lokale Abrufe standardmäßig und verlangt bei aktivierten lokalen Abrufen einen eingegrenzten Basispfad. Die GitHub-CNA bewertet den Fehler mit CVSS 4.0 6,9 (Mittel, UI:A); bezeichnen Sie ihn ohne einen zusätzlich erreichbaren Dienst und Konvertierungspfad nicht als unauthentifizierte Remote-Ausnutzung.
Schritt-für-Schritt Angriffsablauf
Ein Dokument gelangt in den ODF-Konvertierungspfad
Die relevante Eingabe ist eine OpenDocument-Datei, die Docling 2.107.0 bis 2.120.2 verarbeitet. Der Fehler liegt im ODF-Bild-Backend, nicht in jedem Docling-Format oder jeder HTML-/RAG-Integration.
Der Bildverweis stammt aus dem Dokument-XML
Das ODF-Element draw:image liefert ein xlink:href. Docling sucht die Ressource zuerst im Archiv.
Ein fehlender Archivbestandteil fällt auf einen Hostpfad zurück
Scheitert die Suche im Archiv, verwendete der fehlerhafte Helper denselben Verweis als Path und las ihn direkt. Der Fallback prüfte weder die gemeinsame Option für lokale Abrufe noch begrenzte er den Pfad auf das Archiv.
Docling verarbeitet die Bytes als Bildressource
Der Dateizugriff erfolgt vor der Dekodierung. Ist der Inhalt ein unterstütztes Bild, können die Bytes in das DoclingDocument und die HTML-, Markdown- oder JSON-Ausgabe eingebettet werden.
Der korrigierte Loader stellt die Ressourcengrenze wieder her
Docling 2.120.3 leitet externe ODF-Verweise durch ImageResourceLoader, übergibt keinen lokalen Basispfad und schließt Verweise ohne Erweiterung aus. Lassen Sie lokale Abrufe bei nicht vertrauenswürdigen Dokumenten deaktiviert.
Quellcode: Verwundbar vs. Sicher
Dies sind gezielte Ausschnitte aus dem Upstream-Code, kein eigenständiger Patch. Der Fix erzeugt ImageResourceLoader mit den Backend-Optionen enable_local_fetch und enable_remote_fetch, reicht ihn an die ODF-Verarbeitung weiter und lässt externe Verweise durch diesen Loader laufen. Bei base_path=None werden lokale Pfade auch dann abgelehnt, wenn lokale Abrufe ausdrücklich aktiviert sind, weil der Loader kein eingegrenztes Verzeichnis bestimmen kann. Zusätzlich lehnt der Patch leere Bildsuffixe ab. Aktualisieren Sie auf 2.120.3 oder neuer, statt nur diesen Ausschnitt zu übernehmen.
Quelltextauszug: docling/backend/opendocument_backend.py — gezielter Quellcodeausschnitt
# Eine fehlende Archivressource fiel auf den vom Dokument angegebenen Pfad zurück.
if image_data is None and image_url:
image_path = Path(image_url)
if image_path.is_file():
image_data = image_path.read_bytes()
# Korrigierter Pfad: gemeinsamen Loader mit den Backend-Optionen verwenden.
if image_data is None and image_url and image_loader is not None:
image_data = image_loader.load_image_data(image_url, base_path=None)
Checkliste für Engineering & Systemsicherheit
- ✓Aktualisieren Sie docling auf 2.120.3 oder neuer und prüfen Sie die tatsächlich installierte Laufzeitversion, auch in transitiven Dokumentdiensten.
- ✓Erfassen Sie Pipelines, die nicht vertrauenswürdige .odt-, .ods- oder .odp-Dateien annehmen, und bestimmen Sie, welche Betriebssystemdateien der Konvertierungsprozess lesen kann.
- ✓Lassen Sie enable_local_fetch bei nicht vertrauenswürdigen Dokumenten deaktiviert; in verwundbaren Versionen schützt die Option den ODF-Pfad nicht, der den gemeinsamen Loader umgeht.
- ✓Führen Sie die Konvertierung mit einer Identität ohne Sonderrechte, einer minimalen schreibgeschützten Dateisicht und ohne im Parserprozess eingebundene Geheimnisse aus.
- ✓Verwenden Sie ImageResourceLoader in eigenen Backends, statt dokumentgesteuerte Pfade direkt zu öffnen; verlangen Sie vor lokalen Ressourcen ein vertrauenswürdiges Basisverzeichnis.
- ✓Ergänzen Sie Regressionstests für eingebettete Bilder, fehlende Archivverweise, Verweise ohne Erweiterung, absolute Pfade und aktivierte/deaktivierte lokale Abrufe mit kurzlebigen Canary-Dateien.
- ✓Prüfen Sie, ob Ausgaben nur erwartete Dokumentressourcen enthalten; eine erfolgreiche Konvertierung beweist nicht, dass keine andere Datei geöffnet wurde.
- ✓Wenn ein betroffener Dienst nicht vertrauenswürdige ODF-Dateien verarbeitet hat, prüfen Sie Protokolle und Ausgabeartefakte auf unerwartete Bilddaten und beschränken Sie die Untersuchung auf für das Dienstkonto lesbare Dateien.