Docling imports plugin entry points before the allow_external_plugins check
Summary
allow_external_plugins=False (the default, and the CLI default) is meant to restrict docling to its own model plugins. However, docling's plugin factories call pluggy's load_setuptools_entrypoints(), which imports every module registered under docling's plugin entry-point group. Only afterwards does docling filter out modules outside the docling. namespace. Import-time code in any installed third-party plugin therefore runs even though external plugins are disabled.
Details
In docling/models/factories/base_factory.py, load_from_plugins() loads all entry points first and applies the allow_external_plugins check only to the already-imported modules. The CLI creates these factories when it starts, so running docling imports every registered plugin module. A log message says the plugin "will not be loaded", although its module has already been imported.
Affected configurations
Environments in which a package registering a docling plugin entry point is installed, for example an unvetted or compromised dependency, and which rely on allow_external_plugins=False to keep that code from running.
Impact
Execution of a third-party plugin module's import-time code in the docling process, contrary to the documented behaviour of allow_external_plugins=False.
Patches
Fixed in docling 2.131.0 by #4413. Plugin entry points are now filtered by module name before they are loaded, so with allow_external_plugins=False third-party plugin modules are no longer imported.
Workarounds
Upgrade to 2.131.0. For older versions:
Only install trusted packages in environments that run docling. Check which packages register docling plugin entry points with importlib.metadata.entry_points().
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
| Plattform | Paket | Anfällige Versionen | Behoben in |
|---|---|---|---|
| Python (PyPI) | docling | >= 2.27.0, < 2.131.0 | 2.131.0 |
| Python (PyPI) | docling-slim | >= 2.92.0, < 2.131.0 | 2.131.0 |
Verweise
- https://github.com/docling-project/docling/releases/tag/v2.131.0
- https://github.com/docling-project/docling/commit/0f443b3786e98688a2da3b7c8f56fe5e46af876c
- https://github.com/docling-project/docling/pull/4413
- https://github.com/docling-project/docling/security/advisories/GHSA-9jxx-vjrv-h2rq
- https://nvd.nist.gov/vuln/detail/CVE-2026-105745
- https://github.com/docling-project/docling
- https://pypi.org/project/docling-slim
- https://github.com/advisories/GHSA-9jxx-vjrv-h2rq
- CVSS-Vektor
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H- Schwäche (CWE)
CWE-696, CWE-829- Plattform
- Python (PyPI)
- Paket
docling, docling-slim- Veröffentlicht
- 05.10.2026
- Aktualisiert
- 15.10.2026 18:17
Quellen und Lizenzen
OSV / GitHub Advisory Database - PYSEC-2026-4192 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-9jxx-vjrv-h2rq - CC BY 4.0
OSV / GitHub Advisory Database - PYSEC-2026-4210 - PyPA Advisory Database; CC BY 4.0
Schwachstellenhistorie: docling-slim
Alle veröffentlichten Schwachstellen dieses Pakets (Python (PyPI)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
- Einträge insgesamt
- 8
- Erste → letzte
- 10.2026 10.2026
- Ohne Fix
- 0
- In Angriffen ausgenutzt
- 0
Verteilung nach Schweregrad
- Hoch 1
- Mittel 6
- Niedrig 1
Veröffentlichungen pro Jahr
- 2026: 8
-
Docling imports plugin entry points before the allow_external_plugins check dieser Eintrag
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.