GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

PYSEC-2026-2222

Vulnerability from pysec - Published: 2026-06-03 09:16 - Updated: 2026-07-13 05:49
VLAI
Details

A vulnerability in mlflow/mlflow versions prior to 3.11.0 allows for the resolution of environment variables in AI Gateway secrets, which can be exploited to exfiltrate sensitive server-side environment credentials to an attacker-controlled endpoint. This issue arises because the api_key field in gateway secrets can accept $ENV_VAR references, which are resolved against the MLflow server's environment during runtime. The resolved secrets are then sent in provider authentication headers to the configured upstream api_base. This vulnerability can be exploited by low-privileged authenticated users in basic-auth deployments or by unauthenticated users in default deployments without basic-auth. The impact includes potential leakage of sensitive credentials such as cloud artifact credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY), which could lead to artifact poisoning and cross-boundary code execution in downstream environments. The issue is fixed in version 3.11.0.

Impacted products
Name purl
mlflow pkg:pypi/mlflow

{
  "affected": [
    {
      "ecosystem_specific": {},
      "package": {
        "ecosystem": "PyPI",
        "name": "mlflow",
        "purl": "pkg:pypi/mlflow"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "3.11.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ],
      "versions": [
        "0.0.1",
        "0.1.0",
        "0.2.0",
        "0.2.1",
        "0.3.0",
        "0.4.0",
        "0.4.1",
        "0.4.2",
        "0.5.0",
        "0.5.1",
        "0.5.2",
        "0.6.0",
        "0.7.0",
        "0.8.0",
        "0.8.1",
        "0.8.2",
        "0.9.0",
        "0.9.0.1",
        "0.9.1",
        "1.0.0",
        "1.1.0",
        "1.1.1.dev0",
        "1.10.0",
        "1.11.0",
        "1.12.0",
        "1.12.1",
        "1.13",
        "1.13.1",
        "1.14.0",
        "1.14.1",
        "1.15.0",
        "1.16.0",
        "1.17.0",
        "1.18.0",
        "1.19.0",
        "1.2.0",
        "1.20.0",
        "1.20.1",
        "1.20.2",
        "1.21.0",
        "1.22.0",
        "1.23.0",
        "1.23.1",
        "1.24.0",
        "1.25.0",
        "1.25.1",
        "1.26.0",
        "1.26.1",
        "1.27.0",
        "1.28.0",
        "1.29.0",
        "1.3.0",
        "1.30.0",
        "1.30.1",
        "1.4.0",
        "1.5.0",
        "1.6.0",
        "1.7.0",
        "1.7.1",
        "1.7.2",
        "1.8.0",
        "1.9.0",
        "1.9.1",
        "2.0.0",
        "2.0.0rc0",
        "2.0.1",
        "2.1.0",
        "2.1.1",
        "2.10.0",
        "2.10.1",
        "2.10.2",
        "2.11.0",
        "2.11.1",
        "2.11.2",
        "2.11.3",
        "2.11.4",
        "2.12.0",
        "2.12.1",
        "2.12.2",
        "2.13.0",
        "2.13.1",
        "2.13.2",
        "2.14.0",
        "2.14.0rc0",
        "2.14.1",
        "2.14.2",
        "2.14.2.dev0",
        "2.14.3",
        "2.15.0",
        "2.15.0rc0",
        "2.15.1",
        "2.16.0",
        "2.16.1",
        "2.16.2",
        "2.17.0",
        "2.17.0rc0",
        "2.17.1",
        "2.17.2",
        "2.18.0",
        "2.18.0rc0",
        "2.19.0",
        "2.19.0rc0",
        "2.2.0",
        "2.2.1",
        "2.2.2",
        "2.20.0",
        "2.20.0rc0",
        "2.20.1",
        "2.20.2",
        "2.20.3",
        "2.20.4",
        "2.21.0",
        "2.21.0rc0",
        "2.21.1",
        "2.21.2",
        "2.21.3",
        "2.22.0",
        "2.22.0rc0",
        "2.22.1",
        "2.22.2",
        "2.22.3",
        "2.22.4",
        "2.22.5",
        "2.3.0",
        "2.3.1",
        "2.3.2",
        "2.4.0",
        "2.4.1",
        "2.4.2",
        "2.5.0",
        "2.6.0",
        "2.7.0",
        "2.7.1",
        "2.8.0",
        "2.8.1",
        "2.9.0",
        "2.9.1",
        "2.9.2",
        "3.0.0",
        "3.0.0rc0",
        "3.0.0rc1",
        "3.0.0rc2",
        "3.0.0rc3",
        "3.0.1",
        "3.1.0",
        "3.1.0rc0",
        "3.1.1",
        "3.1.2",
        "3.1.3",
        "3.1.4",
        "3.10.0",
        "3.10.0rc0",
        "3.10.1",
        "3.11.0rc0",
        "3.11.0rc1",
        "3.2.0",
        "3.2.0rc0",
        "3.3.0",
        "3.3.0rc0",
        "3.3.1",
        "3.3.2",
        "3.4.0",
        "3.4.0rc0",
        "3.5.0",
        "3.5.0rc0",
        "3.5.1",
        "3.6.0",
        "3.6.0rc0",
        "3.7.0",
        "3.7.0rc0",
        "3.8.0",
        "3.8.0rc0",
        "3.8.1",
        "3.9.0",
        "3.9.0rc0"
      ]
    }
  ],
  "aliases": [
    "CVE-2026-4035",
    "GHSA-g35p-px32-whv6"
  ],
  "details": "A vulnerability in mlflow/mlflow versions prior to 3.11.0 allows for the resolution of environment variables in AI Gateway secrets, which can be exploited to exfiltrate sensitive server-side environment credentials to an attacker-controlled endpoint. This issue arises because the `api_key` field in gateway secrets can accept `$ENV_VAR` references, which are resolved against the MLflow server\u0027s environment during runtime. The resolved secrets are then sent in provider authentication headers to the configured upstream `api_base`. This vulnerability can be exploited by low-privileged authenticated users in basic-auth deployments or by unauthenticated users in default deployments without `basic-auth`. The impact includes potential leakage of sensitive credentials such as cloud artifact credentials (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`), which could lead to artifact poisoning and cross-boundary code execution in downstream environments. The issue is fixed in version 3.11.0.",
  "id": "PYSEC-2026-2222",
  "modified": "2026-07-13T05:49:59.359013Z",
  "published": "2026-06-03T09:16:13.083Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://access.redhat.com/security/cve/CVE-2026-4035"
    },
    {
      "type": "WEB",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-4035.json"
    },
    {
      "type": "REPORT",
      "url": "https://bugzilla.redhat.com/show_bug.cgi?id=2484318"
    },
    {
      "type": "FIX",
      "url": "https://github.com/mlflow/mlflow/commit/4a3f2f720cb4f058c9e0c5b883e0acc9ab64a7f3"
    },
    {
      "type": "EVIDENCE",
      "url": "https://huntr.com/bounties/f8e591a0-0f19-4910-b82e-16c9956f2233"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/advisories/GHSA-g35p-px32-whv6"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…