CVE-2026-11922
Received Received - Intake

Rate Limiting Bypass in ZenML via X-Forwarded-For Header

Vulnerability report for CVE-2026-11922, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-24

Last updated on: 2026-07-24

Assigner: huntr.dev

Description

A vulnerability in zenml-io/zenml versions 0.57.0 through 0.94.2 allows an attacker to bypass rate-limiting on the `POST /api/v1/login` and self password-change endpoints by rotating the `X-Forwarded-For` header. The rate limiter keys requests by `request.client.host`, which is derived from the `X-Forwarded-For` header when Uvicorn is launched with `--proxy-headers --forwarded-allow-ips *`. This configuration allows clients to control the value of `request.client.host`, effectively bypassing rate-limiting protections. This vulnerability leaves the affected endpoints open to unthrottled credential guessing attacks.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-24
Last Modified
2026-07-24
Generated
2026-07-24
AI Q&A
2026-07-24
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 1 associated CPE
Vendor Product Version / Range
zenml-io zenml From 0.57.0 (inc) to 0.94.2 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-290 This attack-focused weakness is caused by incorrectly implemented authentication schemes that are subject to spoofing attacks.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects zenml versions 0.57.0 through 0.94.2. It allows attackers to bypass rate-limiting on login and password-change endpoints by manipulating the X-Forwarded-For header. When Uvicorn runs with proxy headers enabled, the rate limiter uses the header value as the client IP, letting attackers rotate it to avoid throttling and perform credential guessing attacks.

Detection Guidance

To detect this vulnerability, check if your ZenML server is running with Uvicorn configured with `--proxy-headers --forwarded-allow-ips *`. Inspect logs for repeated login attempts or password changes from the same source IP. Verify if rate-limiting is bypassed by monitoring failed login attempts that should have been throttled.

Impact Analysis

Attackers could exploit this to repeatedly guess passwords without rate limits, potentially gaining unauthorized access to accounts. This increases the risk of account takeovers and data breaches if weak or reused passwords are used.

Compliance Impact

This vulnerability could impact compliance with GDPR and HIPAA by enabling brute-force attacks on authentication endpoints. Unlimited login attempts may allow attackers to guess credentials, potentially leading to unauthorized access to personal or sensitive health data. GDPR requires adequate security for personal data, while HIPAA mandates strong access controls for protected health information. The lack of rate-limiting violates these requirements by exposing systems to credential stuffing attacks.

Mitigation Strategies

Update ZenML to a version that includes the fix (commit 8a2214b or later). Disable the vulnerable Uvicorn proxy headers configuration. Ensure rate-limiting is enforced using the direct client host from the request object instead of forwarded headers.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-11922. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart