Vulnerability GHSA-9jxx-vjrv-h2rq

Medium Risk
MEDIUM RISK
CVSS Score: 6.7
Score Range: 4.0–6.9
Medium severity vulnerabilities (CVSS 4.0–6.9). Important issues that meaningfully reduce security confidence.
7 hours ago
October 07, 2026 at 08:40 PM UTC
Docling imports plugin entry points before the allow_external_plugins check
2.27.0 - 2.130.0
2.27.0 - 2.130.0

Summary

Docling imports plugin entry points before the allow_external_plugins check

Details

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().

Impacted packages

Timeline

Published
7 hours ago
October 07, 2026 at 08:40 PM UTC
Fixed (2.131.0)
8 days ago
September 29, 2026 at 07:59 AM UTC
Fixed (2.131.0)
8 days ago
September 29, 2026 at 08:00 AM UTC
Last Modified
7 hours ago
October 07, 2026 at 08:45 PM UTC