High severity · published Oct 6, 2026
CVE-2026-106439
Hydra: Mutable instantiate policy sets allow target blocklist bypass
8.5
CVSS
0.5%
EPSS
No
On KEV
Description
Hydra is a framework for elegantly configuring complex applications. From 1.3.4 until 1.3.7 and 1.4.0.dev10, Hydra stores legacy instantiate target blocklists and related execution-policy collections in mutable module-level state. An attacker who controls multiple sibling target entries can resolve hydra._internal.target_policy.UNCONTROLLED_EXECUTION_TARGETS.discard through instantiate(), remove a denied target, and then invoke that target because sibling nodes are processed in insertion order against the same modified policy. The mutation persists in process-global state and can enable code execution with the application's privileges, while a narrow execution whitelist supplied by trusted Python code is not bypassed by the reported direct mutation path. This issue is fixed in versions 1.3.7 and 1.4.0.dev10.
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 40% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
HY
hydra · hydra-ecosystem
>= 1.3.4, < 1.3.7; >= 1.4.0.dev4, < 1.4.0.dev10 · source: vendor
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-106439
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-106439
x_refsource_CONFIRM
https://github.com/hydra-ecosystem/hydra/security/advisories/GHSA-mwj6-rfh8-7qf4
x_refsource_MISC
https://github.com/hydra-ecosystem/hydra/commit/0dd18084589a3d3e577d1f1a8a48fb485c94a5e6
x_refsource_MISC
https://github.com/hydra-ecosystem/hydra/commit/4720dfca2bde27fa140ec287a05709668fbdf168
x_refsource_MISC
https://github.com/hydra-ecosystem/hydra/releases/tag/v1.3.7
More from hydra
7.8
CVE-2026-106442
Hydra instantiate target blacklist bypasses permit code execution
7.8
CVE-2026-106441
Hydra logging configuration permits unsafe callable resolution
7.8
CVE-2026-106440
Hydra: Optuna custom_search_space can resolve and execute untrusted callables via get_method
