← Back to Feed CACHED · 2026-09-03 16:04:42 · CACHE_KEY CVE-2026-59822
CVE-2026-59822 · CWE-287 · Disclosed 2026-07-08

LiteLLM is a proxy server

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

Someone left the master key under the doormat, and burglars already found it

CVE-2026-59822 is an authentication bypass in BerriAI LiteLLM's Model Context Protocol (MCP) Streamable HTTP endpoint. In versions prior to 1.84.0, the MCP auth handler's OAuth2 passthrough fallback path replaces a failed LiteLLM key validation with an empty UserAPIKeyAuth() object. An attacker can send *any* fabricated Authorization: Bearer <garbage> header — even a single character — and be granted a fully authenticated MCP session. From there, the attacker can enumerate and invoke every MCP tool configured on the gateway, access downstream services, exfiltrate LLM provider API keys, and abuse paid model capacity. The CVSS vector (AV:N/AC:L/PR:N/UI:N) confirms this is unauthenticated, zero-interaction, and network-reachable.

The vendor scored this 8.2 HIGH, which is *conservative* given the real-world picture. CISA added it to KEV on September 2, 2026. Wiz's 90-day honeypot campaign captured active probing of LiteLLM MCP endpoints using single-character tokens, with follow-on activity including credential theft, crypto mining, and blind prompt injection. Censys reports internet-exposed LiteLLM instances nearly doubled in their observation window, with 294,000+ AI/LLM tool IPs now publicly reachable. The trivial exploit, zero prerequisites, confirmed exploitation, and growing attack surface all indicate the vendor score undersells the operational risk. noisgate upgrades this to 8.8.

"KEV-listed auth bypass in AI gateway — trivial to exploit, actively hunted, patch now."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Discover exposed LiteLLM instance

Attacker scans for LiteLLM proxy ports (commonly 4000, 8000, 8080) using Shodan, Censys, or FOFA. LiteLLM returns identifiable response headers and default UI paths (/ui). Censys data shows the exposed population nearly doubled in 2026, making target acquisition trivial.
Conditions required:
  • LiteLLM instance reachable from the internet or attacker's network position
Where this breaks in practice:
  • Instances behind a reverse proxy with path-based ACLs on /mcp/ are not reachable
  • Internal-only deployments require prior network access
Detection/coverage: Shodan/Censys dorks for LiteLLM; network IDS signatures for LiteLLM default response patterns.
STEP 02

Send fabricated Bearer token to MCP endpoint

Attacker sends a POST request to /mcp/ (or the configured MCP Streamable HTTP route) with an Authorization: Bearer x header containing any arbitrary string. The OAuth2 passthrough fallback triggers, LiteLLM key validation fails, and the handler substitutes an empty UserAPIKeyAuth() object. The attacker now has a valid MCP session. Wiz observed attackers using single-character tokens in the wild.
Conditions required:
  • MCP feature enabled on the LiteLLM instance (requires explicit configuration of MCP tools)
Where this breaks in practice:
  • If MCP is not configured or no MCP tools are registered, the session yields nothing actionable
  • Instances using a WAF or API gateway that strips or validates Authorization headers before LiteLLM
Detection/coverage: WAF rules matching unexpected Bearer tokens on /mcp/ paths; LiteLLM audit logs showing UserAPIKeyAuth() with empty user context.
STEP 03

Enumerate and invoke MCP tools

With an authenticated MCP session, the attacker lists all configured MCP tools via the standard MCP tools/list method. Each tool represents a capability — database queries, filesystem access, code execution, API calls to third-party services. The attacker invokes tools to extract data, pivot to downstream systems, or abuse paid LLM capacity.
Conditions required:
  • MCP tools configured with meaningful capabilities (database, filesystem, code exec, etc.)
Where this breaks in practice:
  • Tools configured with narrow scopes (read-only, sandboxed) limit blast radius
  • Network segmentation between LiteLLM and downstream services reduces lateral movement
Detection/coverage: MCP tool invocation logs; anomalous API call patterns to downstream services; unexpected LLM API usage spikes on provider dashboards.
STEP 04

Exfiltrate credentials and establish persistence

The attacker extracts LLM provider API keys (OpenAI, Anthropic, Azure, etc.) stored in LiteLLM's configuration or environment variables. These keys enable direct abuse of paid model capacity outside the gateway. In observed campaigns, attackers also deployed Python downloaders, installed crypto miners, and performed process fingerprinting to establish persistence on the host.
Conditions required:
  • LiteLLM process has access to provider API keys in env vars or config files
  • MCP tools or chained vulns (e.g., CVE-2026-42271) provide code execution on the host
Where this breaks in practice:
  • Provider API keys with spend limits or IP restrictions reduce financial blast radius
  • EDR on the LiteLLM host may detect crypto miner or reverse shell payloads
Detection/coverage: Cloud provider billing alerts for anomalous LLM API spend; EDR alerts for unexpected child processes from Python/LiteLLM; DNS monitoring for C2 callbacks.
03 · Intelligence Metadata

The supporting signals.

In-the-Wild ExploitationConfirmed. CISA KEV-listed 2026-09-02. Wiz honeypot campaign observed active probing with single-character Bearer tokens, followed by credential theft, crypto mining, and prompt injection. Campaigns target LiteLLM alongside Flowise, LangChain, Langflow, and MCP servers.
Proof of ConceptExploit is trivial — a single curl command with Authorization: Bearer x to the /mcp/ endpoint. No public PoC repo needed; the attack is self-evident from the advisory. Related LiteLLM auth bypass PoC exists at BiiTts/CVE-2026-49468-LiteLLM-Auth-Bypass.
EPSS Score0.0087 (low percentile, but this lags KEV reality — treat as stale for this CVE)
KEV StatusListed 2026-09-02. Federal remediation deadline: 2026-09-16. CISA KEV Catalog
CVSS VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N — Network-reachable, zero-complexity, no auth, no interaction. Confidentiality impact is HIGH (API key / data exfil), Integrity is LOW (tool invocation). GHSA rates CVSS 4.0 at 8.8.
Affected VersionsAll LiteLLM versions < 1.84.0 with MCP Streamable HTTP enabled
Fixed Version1.84.0 (GitHub Advisory GHSA-7488-6r32-c95q)
Exposure DataCensys reports internet-exposed AI/LLM tools at 294,000+ IPs (up 60%+ in 9 months). LiteLLM instances specifically nearly doubled during the observation window. Common ports: 4000, 8000, 8080.
Disclosure Date2026-07-08 (disclosed), 2026-07-22 (NVD published)
Reporting ResearcherNot attributed to a named researcher in the advisory. Wiz and Obsidian Security have published related LiteLLM research.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.8/10)

The single most decisive factor is active KEV-listed exploitation of a zero-friction, unauthenticated network attack path — attackers need nothing more than a single HTTP request with a garbage Bearer token. The growing internet-exposed LiteLLM population (nearly doubled per Censys) and confirmed campaigns involving credential theft and crypto mining confirm that the vendor's 8.2 undersells the operational risk.

HIGH Vulnerability mechanics and exploitability
HIGH Active exploitation status (KEV + Wiz honeypot data)
MEDIUM Blast radius in specific enterprise deployments (depends on MCP tool configuration)

Why this verdict

  • Zero-friction exploit: AV:N/AC:L/PR:N/UI:N — a single curl command with any Bearer token bypasses authentication. No exploit development, no social engineering, no prior access required.
  • KEV-listed with confirmed campaigns: CISA added this on 2026-09-02. Wiz honeypots captured active exploitation including credential theft, crypto mining, and prompt injection. This is not theoretical.
  • Growing attack surface: Censys shows internet-exposed LiteLLM instances nearly doubled, with 294,000+ AI/LLM tool IPs publicly reachable. The target population is large and expanding.
  • Role multiplier: LiteLLM is an AI Gateway that centralizes LLM provider API keys (OpenAI, Anthropic, Azure, etc.) and connects to MCP tools with potentially broad downstream access (databases, filesystems, code execution). In enterprises, it functions as a credential aggregator and service broker. Compromise yields API key exfiltration (financial impact via model abuse), data access through MCP tools, and potential lateral movement to downstream systems. The blast radius is host → tenant → potentially supply-chain depending on MCP tool scope. While not a canonical DC/hypervisor, the credential-aggregation role and growing deployment footprint place this firmly in the HIGH floor.
  • Chainability: CVE-2026-42271 demonstrates that LiteLLM MCP test endpoints can be chained for full RCE (subprocess spawning). This auth bypass is the front door for that chain.

Why not higher?

This stops short of CRITICAL because LiteLLM is not a canonical identity-tier or fleet-management component — it does not directly control domain trust, hypervisor layers, or host-level security agents. The blast radius is bounded by what MCP tools are configured; a deployment with no MCP tools or read-only tools limits impact to API key exposure and capacity abuse. The integrity impact is rated LOW in the CVSS vector, reflecting that direct data modification is limited without chaining.

Why not lower?

KEV listing with confirmed active exploitation campaigns immediately eliminates any downgrade below HIGH. The attack requires zero authentication, zero complexity, and zero user interaction against a network-reachable service with a rapidly growing internet-exposed population. The credential-aggregation role (LLM provider API keys worth thousands of dollars monthly) and downstream MCP tool access ensure material business impact even in baseline deployments.

05 · Compensating Control

What to do — in priority order.

  1. Block /mcp/ paths at your reverse proxy or API gateway immediately — The GHSA advisory explicitly recommends this as the interim workaround. Add a deny rule for all paths matching /mcp/* at your load balancer, WAF, or reverse proxy (nginx, Envoy, Cloudflare, etc.). Deploy within the noisgate mitigation SLA of ≤3 days given KEV status overrides to 'immediately'.
  2. Restrict LiteLLM to internal networks only — LiteLLM should never be directly internet-facing. Place it behind a VPN, zero-trust proxy, or private network segment. If it must be reachable externally, enforce mutual TLS or IP allowlisting at the network edge. This eliminates the AV:N vector entirely.
  3. Rotate all LLM provider API keys — Assume any API keys configured in exposed LiteLLM instances are compromised. Rotate OpenAI, Anthropic, Azure, and all other provider keys. Set per-key spend limits and IP restrictions on the provider side to bound financial blast radius.
  4. Audit MCP tool configurations for least privilege — Review every MCP tool registered in your LiteLLM deployment. Remove test endpoints (which enabled RCE via CVE-2026-42271). Restrict remaining tools to read-only or narrowly-scoped operations. This limits blast radius even if auth bypass recurs.
  5. Deploy WAF rules to validate Bearer tokens — Configure your WAF to reject requests to LiteLLM endpoints where the Bearer token does not match expected format (e.g., minimum length, known prefix). This catches the single-character token probing observed in the wild.
What doesn't work
  • LiteLLM's own API key authentication — this is exactly what the vulnerability bypasses. The OAuth2 passthrough fallback replaces failed key validation with an empty auth object, so LiteLLM's built-in auth provides zero protection for MCP endpoints.
  • Network-level rate limiting alone — while it slows attackers, the exploit requires only a single request to establish a session. Rate limiting does not prevent the auth bypass, it just delays enumeration.
  • Upgrading LLM provider SDK versions — the vulnerability is in LiteLLM's proxy layer, not in any downstream provider SDK. Updating OpenAI or Anthropic client libraries does nothing.
06 · Verification

Crowdsourced verification payload.

Run this script on any host with curl and network access to the target LiteLLM instance. Invoke as: bash check_cve_2026_59822.sh https://litellm.example.com:4000. No special privileges required — it performs a non-destructive read-only probe of the MCP endpoint.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/usr/bin/env bash
# check_cve_2026_59822.sh — Detect CVE-2026-59822 LiteLLM MCP Auth Bypass
# Usage: bash check_cve_2026_59822.sh <LITELLM_BASE_URL>
# Exit codes: 0=VULNERABLE, 1=PATCHED, 2=UNKNOWN

set -euo pipefail

if [ -z "${1:-}" ]; then
  echo "Usage: $0 <LITELLM_BASE_URL>"
  echo "Example: $0 https://litellm.example.com:4000"
  exit 2
fi

BASE_URL="${1%/}"
MCP_ENDPOINT="${BASE_URL}/mcp"

echo "[*] Probing LiteLLM MCP endpoint at ${MCP_ENDPOINT}"
echo "[*] Sending fabricated Bearer token (non-destructive tools/list only)..."

# Send MCP initialize request with a dummy Bearer token
HTTP_CODE=$(curl -s -o /tmp/cve_2026_59822_response.json -w "%{http_code}" \
  -X POST "${MCP_ENDPOINT}" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer noisgate-probe-cve2026" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"noisgate-scanner","version":"1.0.0"}}}' \
  --connect-timeout 10 --max-time 15 2>/dev/null) || true

RESPONSE=$(cat /tmp/cve_2026_59822_response.json 2>/dev/null || echo "")
rm -f /tmp/cve_2026_59822_response.json

echo "[*] HTTP response code: ${HTTP_CODE}"

if [ -z "${HTTP_CODE}" ] || [ "${HTTP_CODE}" = "000" ]; then
  echo "UNKNOWN — Could not connect to ${MCP_ENDPOINT}"
  exit 2
fi

# Check if we got a successful MCP session with the fake token
if [ "${HTTP_CODE}" = "200" ] && echo "${RESPONSE}" | grep -qi '"protocolVersion"'; then
  echo "VULNERABLE — MCP session established with fabricated Bearer token."
  echo "[!] CVE-2026-59822: Auth bypass confirmed. Upgrade to LiteLLM >= 1.84.0 immediately."
  echo "[*] Server response (truncated): $(echo "${RESPONSE}" | head -c 500)"
  exit 0
elif [ "${HTTP_CODE}" = "401" ] || [ "${HTTP_CODE}" = "403" ]; then
  echo "PATCHED — MCP endpoint rejected fabricated Bearer token (HTTP ${HTTP_CODE})."
  exit 1
elif [ "${HTTP_CODE}" = "404" ]; then
  echo "PATCHED — MCP endpoint not found (feature may be disabled or path blocked)."
  exit 1
else
  echo "UNKNOWN — Unexpected HTTP ${HTTP_CODE}. Manual review recommended."
  echo "[*] Response: $(echo "${RESPONSE}" | head -c 300)"
  exit 2
fi
07 · Bottom Line

If you remember one thing.

TL;DR
This is a KEV-listed, actively exploited authentication bypass with zero prerequisites — treat it as an emergency. Because CISA KEV status overrides the standard noisgate mitigation SLA, you should block /mcp/ paths at your reverse proxy or WAF today, within hours, not within 3 days. Rotate all LLM provider API keys configured in any LiteLLM instance that was internet-reachable. Then upgrade to LiteLLM ≥ 1.84.0 within the noisgate remediation SLA of ≤ 90 days for CRITICAL/HIGH — but given active exploitation, push this into your next maintenance window, ideally within 7 days. Audit your MCP tool configurations and remove any test endpoints to prevent RCE chaining via CVE-2026-42271. If you cannot patch quickly, pull LiteLLM off the internet entirely and restrict it to internal network access behind a VPN.

Sources

  1. CISA KEV Addition Alert (2026-09-02)
  2. GitHub Security Advisory GHSA-7488-6r32-c95q
  3. The Hacker News — CISA Adds Seven Exploited Flaws
  4. eSecurity Planet — Wiz Finds Active LiteLLM and MCP Attacks
  5. Censys — AI/LLM Tool Exposures Up 60%
  6. GitLab Advisory Database — CVE-2026-59822
  7. NVD — CVE-2026-59822 Detail
  8. Obsidian Security — Breaking LiteLLM
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.