Live Exposure Defense: From CVE to Confirmed Exposure in 12 Hours – See more

New CVE Detected

CVE-2026-45018 – Unauthenticated RCE via MCP Command Injection – Chainlit 2.4.0rc0–2.11.x

Be the first to know when new zero-days emerge:

Summary

CVE-2026-45018 is a critical OS command injection vulnerability (CWE-78) in Chainlit, a Python framework for building conversational AI applications. When the Model Context Protocol (MCP) feature is enabled, an unauthenticated attacker can send a crafted request to the POST /mcp endpoint to execute arbitrary shell commands with the privileges of the Chainlit process. The flaw carries a CVSS v3.1 base score of 9.8 (Critical) and requires no authentication or user interaction.

Technical details

  • Root cause: the validate_mcp_command() function (in backend/chainlit/mcp.py) checks only the executable name in a user-supplied fullCommand string against config.features.mcp.stdio.allowed_executables, then passes the remaining arguments unchecked to StdioServerParameters.
  • Additional flaw: if allowed_executables is left unset, its default value of None is treated as permitting every executable rather than none.
  • Trigger conditions: the deployment must have features.mcp.enabled = true in .chainlit/config.toml, and the attacker uses the stdio transport by submitting a command such as an allowed executable (e.g., npx) combined with argument flags (e.g., -c) that execute arbitrary shell commands.
  • Attack vector: network, unauthenticated, no user interaction — the /mcp endpoint does not require prior authentication.
  • Impact: full remote code execution with the privileges of the Chainlit server process, resulting in complete loss of confidentiality, integrity, and availability of the host.

Affected software

  • Chainlit (PyPI package chainlit), versions >= 2.4.0rc0 and < 2.12.0.
  • Note: MCP support has been disabled by default since Chainlit 2.7.0, which limits exposure to deployments that explicitly enabled features.mcp.enabled.

Severity

  • CVSS v3.1 Base Score: 9.8 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Mitigation and recommended actions

  • Immediate: upgrade Chainlit to version 2.12.0 or later, which fixes the argument validation logic.
  • If immediate upgrade is not possible:
    • Set features.mcp.enabled = false in .chainlit/config.toml to disable the vulnerable MCP stdio endpoint entirely.
    • Explicitly restrict config.features.mcp.stdio.allowed_executables to a minimal, vetted list rather than leaving it unset.
    • Restrict or sandbox the host’s ability to spawn outbound processes from the Chainlit service.
    • Place an authentication requirement (e.g., an auth callback) in front of the application to reduce unauthenticated exposure.
      [{"name": "CVE-2026-45018 Record (CVE List)", "url": "https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/45xxx/CVE-2026-45018.json"}, {"name": "Chainlit Security Advisory GHSA-w3fx-mc44-mf6j", "url": "https://github.com/Chainlit/chainlit/security/advisories/GHSA-w3fx-mc44-mf6j"}, {"name": "Chainlit 2.12.0 Release Notes", "url": "https://github.com/Chainlit/chainlit/releases/tag/2.12.0"}]

References

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

How IONIX’s External Exposure Management Platform Detects and Validates
Zero-Days to Shrink MTTR

1

Map your entire attack surface (continously)

IONIX uses multi-factor discovery methods, including DNS analysis, certificate mapping, metadata inspection, and more, to automatically map every internet-facing asset across your environment. This includes cloud instances, third-party platforms, shadow IT, and even forgotten infrastructure that traditional tools miss.

2

Monitor for new CVEs

Dozens of threat intel feeds using agentic technology are continuously analyzed to detect the appearance of proof-of-concept code, exploit kits, and indicators of active targeting. IONIX goes further by applying AI to proactively evaluate whether emerging vulnerabilities are likely to be exploited, even before PoCs go public.

3

Identify Potential External Exposures

Not all CVEs matter. IONIX filters vulnerabilities by asking attacker-centric questions: Can it be reached from the internet? Does it require authentication? Is it being exploited in the wild? This dramatically reduces noise and focuses teams on threats that can actually be weaponized.

4

Create Safe, Scalable Exploit Validations

IONIX transforms real-world PoCs into safe, non-intrusive test payloads that can be run in production environments without disruption. These simulations are precisely targeted to the systems that are vulnerable, ensuring rapid validation without unnecessary load.

5

Execute Exploit Validations

By combining context about software stack, versioning, exposure status, and reachability, IONIX ensures that only the right payloads are executed against the right assets, maximizing efficiency and minimizing risk.

6

Drive Fast and Actionable Remediation

Results are routed through integrations with ticketing, SOAR, and SIEM tools. Issues are written in plain language, bundled into remediation clusters, and prioritized based on asset criticality, exploitability, and blast radius. This shortens mean time to remediation (MTTR) and empowers teams to act with confidence.

Are you exposed?

Get a free report of your organization’s exposure to this CVE and threat

Subscribe to Threat Center RSS

Copy/paste the link below into your preferred RSS reader or follow these instructions to subscribe to Slack alerts.

Get Real-Time CVE Alerts to Your Email

Be the first to know when new zero-days emerge