MLflow AI Gateway permits SSRF through an unvalidated api_base
High7.1CVE-2026-71211 · Published Aug 5, 2026 · updated Sep 10, 2026
Affected versions
| Package | Affected | Fixed in |
|---|---|---|
| mlflow PyPI | >= 3.13.0, <= 3.15.2 | No fix yet |
Details and references
MLflow's AI Gateway accepts an auth_config.api_base value when creating a gateway secret (mlflow/server/handlers.py, _create_gateway_secret) with no validation of scheme, host, or IP range; the value is stored verbatim. The gateway proxy endpoint (mlflow/server/gateway_api.py, raw_proxy) subsequently issues an HTTP request to that stored api_base plus a caller-supplied path and returns the full response body. MLflow's existing SSRF guard, _validate_webhook_url (which blocks non-global and metadata IPs), is never invoked anywhere in this gateway secret/proxy code path. The CreateGatewaySecret action additionally has no entry in the permission-validator map, so it requires only basic authentication rather than any specific scope, meaning any authenticated user , including read-only accounts , can create a secret pointing at an internal address and reach it via the proxy endpoint, potentially exposing cloud-instance IAM credentials via metadata services. This is related to CVE-2026-4035, which addresses a distinct mechanism in the same gateway-secret feature (server-side $ENV_VAR resolution inside the api_key field leaking credentials to the configured upstream); the finding here is an independent missing-validation gap in the api_base destination itself, unaffected by that fix.
- CVSS 3.1
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N
- Severity from
- GitHub (reviewed advisory)
- Weakness
- CWE-918
- Also known as
- CVE-2026-71211, PYSEC-2026-3865
More MLflow advisories
All MLflow| Date | Advisory | Severity | Fixed in |
|---|---|---|---|
| Aug 17 | MLflow: Unauthenticated full-read SSRF in webhook delivery: _validate_webhook_url bypassed via unvalidated HTTP redirects (and DNS rebinding) CVE-2026-64849Critical9.3fixed in 3.15.0 | Critical9.3 | 3.15.0 |
| Sep 1 | MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False safety control bypassed by mlflow.statsmodels flavor , RCE via crafted model artifact GHSA-gqvg-gmmx-x4hmHigh8.8fixed in 3.15.0 | High8.8 | 3.15.0 |
| Jul 2 | MLflow: trace API endpoints lack proper authorization validators CVE-2026-8147High8.1fixed in 3.13.0rc0 | High8.1 | 3.13.0rc0 |
| Jun 4 | MLflow: Deterministic sampling in dataset digest enables predictable collisions CVE-2026-10803Low3.6fixed in 3.10.1 | Low3.6 | 3.10.1 |
| Jun 3 | MLflow: Environment variable injection in AI Gateway secrets enables server-side credential exfiltration CVE-2026-4035Critical9.1fixed in 3.11.0 | Critical9.1 | 3.11.0 |
| Jun 2 | MLflow: Any authenticated user can enumerate all gateway secrets, endpoints, and model definitions CVE-2026-3198Medium6.5fixed in 3.11.0rc0 | Medium6.5 | 3.11.0rc0 |