CVE-2026-106439: Hydra instantiate execution policy bypass via mutable module-level state

CVE-2026-106439 · Severity: high · CVSS 4 · Published 2026-10-06

Hydra is a Python framework for configuring complex applications. An attacker who controls multiple target configuration entries can modify the framework's execution policy blocklist at runtime, removing denied targets and then executing them with the application's privileges. This could allow unauthorized code execution if an application uses Hydra with untrusted configuration inputs.

Technologies: Facebook Hydra, hydra-core (PyPI). Vendors: Facebook, PyPI.

Quick answers

Is CVE-2026-106439 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-106439 being exploited in the wild.
How severe is CVE-2026-106439?
High severity, with a CVSS score of 4, published 6 October 2026.
Which products and versions are affected?
Facebook Hydra 1.3.4 to 1.3.7, 1.4.0.dev10; hydra-core (PyPI) ECOSYSTEM:introduced=1.3.4,fixed=1.3.7, ECOSYSTEM:introduced=1.3.4,fixed=1.3.7,introduced=1.4.0.dev4,fixed=1.4.0.dev10.
Is there a fix for CVE-2026-106439?
Yes. hydra-core (PyPI): upgrade to 1.3.7, 1.4.0.dev10 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-106439 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-106439?
Check whether you run Facebook Hydra or hydra-core (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • hydra-core (PyPI): upgrade to 1.3.7, 1.4.0.dev10 or later
    pip install "hydra-core>=1.4.0.dev10"

Technical details

The vulnerability exists in how Hydra stores execution policy blocklists in mutable module-level state rather than immutable structures. An attacker controlling sibling target entries can call instantiate() to resolve and mutate UNCONTROLLED_EXECUTION_TARGETS.discard(), removing a denied target from the policy. Because sibling nodes are processed in insertion order against the same modified policy, the attacker can then invoke the previously-blocked target. The mutation persists in process-global state and enables code execution, though a narrow execution whitelist supplied by trusted Python code cannot be bypassed via this direct mutation path.

Affected products

  • Facebook Hydra 1.3.4 to 1.3.7, 1.4.0.dev10

Identifiers

  • CVE-2026-106439
  • GHSA-mwj6-rfh8-7qf4
  • PYSEC-2026-4222

Timeline

  • 2026-10-06: advisory
  • 2026-09-15: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.