High (AgentArmorHQ estimate)Other

Chainlit has SSRF via MCP SSE and streamable-http transports that allows unauthenticated internal network access

Product
Chainlit
CVE
CVE-2026-45019
Affected
chainlit 2.4.0rc0 to 2.11.1
Fixed in
2.12.0

Last verified against sources: October 26, 2026

Am I affected?

Chainlit: affected chainlit 2.4.0rc0 to 2.11.1. Fixed in 2.12.0.

  • Check your version: run pip show chainlit. Versions >= 2.4.0rc0, <= 2.11.1 of chainlit are affected. [1]

What to do now

  1. Upgrade to the fixed version: run pip install --upgrade "chainlit>=2.12.0" (first patched version 2.12.0). [1]
  2. Upgrade to Chainlit 2.12.0. [1]
  3. Set features.mcp.enabled = false in .chainlit/config.toml. [1]
  4. Restrict outbound network egress from the host running Chainlit. [1]
  5. Configure authentication (register an auth callback) so that /mcp requires an authenticated session. [1]

General practice, not from the source: if the affected software could read tokens or credentials, rotate them after upgrading; pin versions and review changes before updating tools your agents run.

Discuss this incident

What happened

  • When MCP is enabled (features.mcp.enabled = true), the POST /mcp endpoint for sse and streamable-http transports accepts a user-controlled url and optional headers dictionary without any validation. [1]
  • MCP has been disabled by default since v2.7.0. [1]
  • The SSE URL sink has existed since MCP support was first introduced in v2.4.0rc0. [1]
  • This is a blind SSRF: the server makes the outbound request, but the response is consumed internally by the MCP client and never returned to the attacker. [1]

Impact

  • An unauthenticated attacker can force the Chainlit server to make outbound HTTP requests to arbitrary URLs — including internal network services and cloud metadata endpoints — with attacker-controlled HTTP headers such as Authorization and Cookie. [1]
  • The same primitive also enables internal service discovery, port scanning, and probing cloud metadata endpoints. [1]

What was done

  • Patched: 2.12.0 (releasing 2026-08-25). [1]
  • A companion advisory (CVE-2026-45018) covers the corresponding fix for command injection via the stdio transport. [1]

Sources

  1. GHSA-hvfh-5mj3-5f3j — GitHub Advisory Database

Every statement above was checked against these sources before publishing. Spotted an error? Tell us and we will correct it with a dated note.

Share advisory brief with your team

Copy a plain-text summary for Slack, GitHub issues, or team security channels.

Brief
[CVE-2026-45019] Chainlit has SSRF via MCP SSE and streamable-http transports that allows unauthenticated internal network access
Product: Chainlit | Affected: chainlit 2.4.0rc0 to 2.11.1 | Fixed in: 2.12.0
Summary: When MCP is enabled (`features.mcp.enabled = true`), the `POST /mcp` endpoint for `sse` and `streamable-http` transports accepts a user-controlled `url` and optional `headers` dictionary without any validation.
Source & remediation on AgentArmorHQ: https://agentarmorhq.com/incidents/2026/08/cve-2026-45019-chainlit
Was this page useful?

Corrections

Report an error or request a correction. We review requests within 5 business days and add a dated correction note.

10 to 2,000 characters. A link to a source helps. Stored as plain text.

Discussions for CVE-2026-45019

Ask questions or share configuration tips. Governed by our Community Rules & Terms.

No posts match this filter yet.

Be the first to ask a question or share a working tip.

Check before you install

Paste a package name or a GitHub link and get a clear answer in seconds: Block, Review or No known issues. No account needed.

Check a package

Questions? Contact us