GitHub Advisoryadvisory · PyPI
GHSA-hvfh-5mj3-5f3j Chainlist has SSRF via MCP SSE and streamable-http transports that allows unauthenticated internal network access
HIGH
Official page ↗
- Aliases
- CVE-2026-45019
- Ecosystem
- PyPI
- Packages
- chainlit
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N
- Weaknesses
- CWE-918
- Reviewed
- 2026-08-25
Affected packages
• PyPI chainlit: >= 2.4.0rc0, < 2.12.0 → fixed in 2.12.0
Description
Am I affected?
Only if your deployment sets `features.mcp.enabled = true` in `.chainlit/config.toml`. MCP has been disabled by default since v2.7.0, so most Chainlit deployments are not affected. No authentication is required: `/mcp` is reachable by any client that can open a session.
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. 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`.
Affected / patched versions
| | |
|---|---|
| CVE | CVE-2026-45019 |
| Affected — URL-based SSRF | `>=2.4.0rc0, =2.6.4, Breaking change. 2.12.0 changes how MCP servers are configured. If `.chainlit/config.toml` still uses the legacy `[features.mcp.sse]`, `[features.mcp.stdio]`, or `[features.mcp.streamable-http]` sections, or the `allowed_executables` setting, the application will fail to start once MCP is enabled, until you migrate to the new `[[features.mcp.servers]]` / `allowed_urls` configuration. See the migration guide in `CHANGELOG.md` before upgrading. Deployments with `features.mcp.enabled = false` are not affected by this startup check.
Residual risk after upgrading
• On deployments with no authentication configured, `/mcp` remains reachable anonymous…
Related
Alias · CVE (1)
- CVE-2026-45019 Chainlit is a Python framework for building production-ready conversational AI applications. vulnerability
Weakness · CWE (1)
- CWE-918 Server-Side Request Forgery weakness
References
- https://github.com/Chainlit/chainlit/security/advisories/GHSA-hvfh-5mj3-5f3j web
- https://github.com/Chainlit/chainlit/commit/0565fd0eccb915fce159929598b053ed79f6e0c9 web
- https://github.com/Chainlit/chainlit package
- https://github.com/Chainlit/chainlit/blob/2.12.0/docs/security-advisory-2026-mcp.md#spl-2026-002--ssrf-via-mcp-streamable-http--sse web
- https://github.com/Chainlit/chainlit/releases/tag/2.12.0 web