CVE-2026-106441: Hydra core Hydra Logging Configuration Permits Unsafe Vulnerability

HIGH
Advisory Identifier: GHSA-c3wx-c55w-pxjq
CVSS 7.8
CWE-94
Published
Advisory Summary

CVE-2026-106441 is a HIGH (CVSS 7.8) hydra logging configuration permits unsafe vulnerability (CWE-94: Improper Control of Generation of Code ('Code Injection')) affecting Hydra core libraries in the PyPI ecosystem. The issue involves hydra logging configuration permits unsafe callable resolution. Remediation is available by upgrading affected packages to version 1.3.6, 1.4.0.dev9.

CVE-2026-106441 at a Glance

CVE Identifier CVE-2026-106441
GHSA Identifier GHSA-c3wx-c55w-pxjq
Severity HIGH
CVSS v3.1 Base Score 7.8
CWE Classification CWE-94: Improper Control of Generation of Code ('Code Injection')
Affected Product Hydra core
Package Ecosystem PyPI
Published Date
Last Updated

Security Impact

CVSS: 7.8

The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H).

Attack Vector Local (AV:L)
Attack Complexity Low (AC:L)
Privileges Required None (PR:N)
User Interaction Required (UI:R)
Scope Unchanged (S:U)
Confidentiality High (C:H)
Integrity High (I:H)
Availability High (A:H)

How to Fix CVE-2026-106441

To remediate this vulnerability, upgrade all affected Hydra core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.

hydra-core fixed: 1.3.6
pip install hydra-core>=1.3.6
hydra-core fixed: 1.4.0.dev9
pip install hydra-core>=1.4.0.dev9
Verify Direct and Transitive Dependencies

Run the following command in your project directory to verify that all resolved dependencies use the patched release:

pip show hydra-core

How to Check if You Are Affected

To determine whether your Python environment is affected by CVE-2026-106441, inspect your installed packages using pip:

pip show hydra-core

Analyze the terminal output to locate any version of Hydra core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 1.3.6), your application is affected.

Note: The pip show hydra-core command checks currently installed packages in your active Python environment.

Technical Details

Vulnerability Mechanism & Technical Analysis

This vulnerability is classified under CWE-94: Improper Control of Generation of Code ('Code Injection'), where the product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment. In Hydra core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.

Source Advisory Statement

## Summary Hydra passed its Python logging configuration to `logging.config.dictConfig()`. Python's logging configurator can resolve and invoke importable classes and factories named by configuration, including handler `class` values and formatter, filter, handler, queue, and listener `()` factories. This logging path was not mediated by Hydra's target policy. In versions that already protected `instantiate()`, logging resolution bypassed those controls because it did not use `instantiate()`. An attacker who can control a Hydra logging configuration can use a custom class or factory to execute code with the application's privileges when Hydra configures logging. ## Fix Hydra now applies its target policy to callable resolution and invocation in Hydra-configured Python logging. It authorizes custom factories, handlers, formatters, filters, queues, listeners, aliases, discovery results, and callable results before they can be used. Hydra 1.3.6 uses the hardened blacklist. The Hydra 1.3 blacklist is a best-effort, defense-in-depth measure. It is not a complete security boundary and does not make untrusted logging configuration safe. Hydra 1.4.0.dev9 introduces the execution whitelist as the recommended primary boundary, with the blacklist retained as a deprecated compatibility fallback. When an execution whitelist is supplied, Hydra automatically permits targets used by its built-in logging configurations, while custom logging integrations must be explicitly authorized by trusted Python code. If no whitelist is supplied, Hydra warns and preserves legacy fallback behavior. ## Remediation Upgrade to Hydra 1.3.6, or to Hydra 1.4.0.dev9 or later when testing the 1.4 prerelease line. On Hydra 1.3, do not compose logging configuration from untrusted sources. On Hydra 1.4 and later, constrain custom logging targets with a narrow execution whitelist supplied by trusted Python code. The execution whitelist controls callable selection; it is not general validation of all logging settings. For Hydra 1.4 execution-whitelist configuration, see: https://hydra.cc/docs/advanced/execution_whitelist/

CVE-2026-106441 Affected Hydra core Versions

2 component(s)
Fixed Versions:
1.3.61.4.0.dev9
Product / Package Ecosystem Affected Versions Fixed Version
hydra-core
PyPI
< 1.3.6
1.3.6
hydra-core
PyPI
≥ 1.4.0.dev0
< 1.4.0.dev9
1.4.0.dev9

References

Frequently Asked Questions

What is CVE-2026-106441?
CVE-2026-106441 is a security vulnerability in Hydra core involving Hydra logging configuration permits unsafe callable resolution under CWE-94: Improper Control of Generation of Code ('Code Injection').
Which Hydra core versions are affected?
Affected versions include releases prior to 1.3.6, 1.4.0.dev9 across affected packages: hydra-core.
What version fixes CVE-2026-106441?
Upgrading to 1.3.6, 1.4.0.dev9 (or the latest patched release for your respective branch) resolves the vulnerability.
Is hydra-core affected?
Yes, hydra-core is affected in releases prior to 1.3.6, 1.4.0.dev9. Upgrade your dependency to 1.3.6, 1.4.0.dev9 or later.
What is the CVSS score of CVE-2026-106441?
CVE-2026-106441 has a CVSS v3.1 base score of 7.8 (HIGH) with vector string CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H.
What CWE is associated with CVE-2026-106441?
CVE-2026-106441 is classified under CWE-94: Improper Control of Generation of Code ('Code Injection') (The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment.).
How can I check PyPI dependencies for CVE-2026-106441?
Run the dependency tree command: 'pip show hydra-core'. This command lists direct and transitive dependencies in your build configuration so you can verify if a vulnerable version is resolved.
Machine-readable OSV JSON OSV v1.5 Schema
Normalized schema output
{
  "schema_version" : "1.4.0",
  "id" : "GHSA-c3wx-c55w-pxjq",
  "modified" : "2026-10-07T18:03:55Z",
  "published" : "2026-10-07T18:03:55Z",
  "aliases" : [ "CVE-2026-106441" ],
  "summary" : "Hydra logging configuration permits unsafe callable resolution",
  "details" : "## Summary\n\nHydra passed its Python logging configuration to `logging.config.dictConfig()`. Python's logging configurator can resolve and invoke importable classes and factories named by configuration, including handler `class` values and formatter, filter, handler, queue, and listener `()` factories.\n\nThis logging path was not mediated by Hydra's target policy. In versions that already protected `instantiate()`, logging resolution bypassed those controls because it did not use `instantiate()`.\n\nAn attacker who can control a Hydra logging configuration can use a custom class or factory to execute code with the application's privileges when Hydra configures logging.\n\n## Fix\n\nHydra now applies its target policy to callable resolution and invocation in Hydra-configured Python logging. It authorizes custom factories, handlers, formatters, filters, queues, listeners, aliases, discovery results, and callable results before they can be used.\n\nHydra 1.3.6 uses the hardened blacklist. The Hydra 1.3 blacklist is a best-effort, defense-in-depth measure. It is not a complete security boundary and does not make untrusted logging configuration safe.\n\nHydra 1.4.0.dev9 introduces the execution whitelist as the recommended primary boundary, with the blacklist retained as a deprecated compatibility fallback. When an execution whitelist is supplied, Hydra automatically permits targets used by its built-in logging configurations, while custom logging integrations must be explicitly authorized by trusted Python code. If no whitelist is supplied, Hydra warns and preserves legacy fallback behavior.\n\n## Remediation\n\nUpgrade to Hydra 1.3.6, or to Hydra 1.4.0.dev9 or later when testing the 1.4 prerelease line.\n\nOn Hydra 1.3, do not compose logging configuration from untrusted sources. On Hydra 1.4 and later, constrain custom logging targets with a narrow execution whitelist supplied by trusted Python code. The execution whitelist controls callable selection; it is not general validation of all logging settings.\n\nFor Hydra 1.4 execution-whitelist configuration, see:\n\nhttps://hydra.cc/docs/advanced/execution_whitelist/",
  "severity" : [ {
    "type" : "CVSS_V3",
    "score" : "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
  } ],
  "affected" : [ {
    "package" : {
      "ecosystem" : "PyPI",
      "name" : "hydra-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "0"
      }, {
        "fixed" : "1.3.6"
      } ]
    } ]
  }, {
    "package" : {
      "ecosystem" : "PyPI",
      "name" : "hydra-core"
    },
    "ranges" : [ {
      "type" : "ECOSYSTEM",
      "events" : [ {
        "introduced" : "1.4.0.dev0"
      }, {
        "fixed" : "1.4.0.dev9"
      } ]
    } ]
  } ],
  "references" : [ {
    "type" : "WEB",
    "url" : "https://github.com/hydra-ecosystem/hydra/security/advisories/GHSA-c3wx-c55w-pxjq"
  }, {
    "type" : "ADVISORY",
    "url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-106441"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/hydra-ecosystem/hydra/pull/3420"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/hydra-ecosystem/hydra/commit/76bfc30ce1f3105416941dd2e3a562568e369120"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/hydra-ecosystem/hydra/commit/ff3e4dba890c29a21d8c2bb867ee87d37ccf21d0"
  }, {
    "type" : "PACKAGE",
    "url" : "https://github.com/hydra-ecosystem/hydra"
  }, {
    "type" : "WEB",
    "url" : "https://github.com/hydra-ecosystem/hydra/releases/tag/v1.3.6"
  } ],
  "database_specific" : {
    "cwe_ids" : [ "CWE-94" ],
    "severity" : "HIGH",
    "github_reviewed" : true,
    "github_reviewed_at" : "2026-10-07T18:03:55Z",
    "nvd_published_at" : "2026-10-06T19:18:13Z"
  }
}