CVE-2026-75128: Langchain-Chatchat: unauthenticated shell tool RCE
CRITICALCISA: ATTENDLangchain-Chatchat through 0.3.1.3 exposes a POST /tools/call endpoint that runs any registered tool by name without authentication, and the always-registered shell tool lets a single request execute arbitrary OS commands, as root in the shipped Docker image. The CVSS is 9.8 with network reach, low complexity, and no privileges or user interaction needed. Exploitation likelihood is currently modest (EPSS 0.52%, around the 57th percentile), and there is no CISA KEV listing, public exploit, or Nuclei template. However, the flaw is trivial to weaponize from the description alone, and the public source reference makes it easy to reproduce. Any internet- or intranet-reachable Chatchat deployment should be treated as fully compromised-on-contact: restrict network access immediately, then check the vendor repository for a fixed release (none is cited in the available data, so verify before assuming one exists), and review hosts for unexpected commands and outbound connections.
What is the risk?
Critical. The flaw is a missing-authentication issue (CWE-306) that gives unauthenticated remote code execution with a single HTTP request. Exploitability is trivial and impact covers confidentiality, integrity, and availability. Short-term exploitation probability signals are low (EPSS 0.52%, no KEV, no public exploit, no scanner template), but these can change quickly once a PoC appears. Exposure depends on how many Chatchat servers are reachable beyond localhost. Because the Docker image runs as root, container compromise is immediate and a container escape or lateral movement could follow. Dependents and package risk data are unavailable, so blast radius is not quantified (Sin datos).
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step1) Do not expose the Chatchat API server to untrusted networks; bind to localhost or place it behind an authenticating reverse proxy or VPN. 2) Block or require authentication for POST /tools/call at the gateway or WAF as an immediate workaround. 3) Check the project's GitHub repository and the VulnCheck and Lasso advisories for a fixed version beyond 0.3.1.3, and upgrade when available; otherwise disable or remove the shell tool from the tool registry in a local patch. 4) Run the container as a non-root user with a read-only filesystem, dropped capabilities, and restricted egress. 5) Detect: search web and proxy logs for requests to /tools/call, especially naming the shell tool from unknown sources; monitor for unexpected child processes of the Chatchat server, new outbound connections, and new files or cron entries. 6) If exposure is suspected, rotate all secrets and API keys stored on the host and rebuild from a clean image.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-75128?
Langchain-Chatchat through 0.3.1.3 exposes a POST /tools/call endpoint that runs any registered tool by name without authentication, and the always-registered shell tool lets a single request execute arbitrary OS commands, as root in the shipped Docker image. The CVSS is 9.8 with network reach, low complexity, and no privileges or user interaction needed. Exploitation likelihood is currently modest (EPSS 0.52%, around the 57th percentile), and there is no CISA KEV listing, public exploit, or Nuclei template. However, the flaw is trivial to weaponize from the description alone, and the public source reference makes it easy to reproduce. Any internet- or intranet-reachable Chatchat deployment should be treated as fully compromised-on-contact: restrict network access immediately, then check the vendor repository for a fixed release (none is cited in the available data, so verify before assuming one exists), and review hosts for unexpected commands and outbound connections.
Is CVE-2026-75128 actively exploited?
No confirmed active exploitation of CVE-2026-75128 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-75128?
1) Do not expose the Chatchat API server to untrusted networks; bind to localhost or place it behind an authenticating reverse proxy or VPN. 2) Block or require authentication for POST /tools/call at the gateway or WAF as an immediate workaround. 3) Check the project's GitHub repository and the VulnCheck and Lasso advisories for a fixed version beyond 0.3.1.3, and upgrade when available; otherwise disable or remove the shell tool from the tool registry in a local patch. 4) Run the container as a non-root user with a read-only filesystem, dropped capabilities, and restricted egress. 5) Detect: search web and proxy logs for requests to /tools/call, especially naming the shell tool from unknown sources; monitor for unexpected child processes of the Chatchat server, new outbound connections, and new files or cron entries. 6) If exposure is suspected, rotate all secrets and API keys stored on the host and rebuild from a clean image.
What systems are affected by CVE-2026-75128?
This vulnerability affects the following AI/ML architecture patterns: Agent frameworks, RAG pipelines, Self-hosted LLM application servers, Tool-calling / function-calling APIs, Containerized LLM deployments.
What is the CVSS score for CVE-2026-75128?
CVE-2026-75128 has a CVSS v3.1 base score of 9.8 (CRITICAL). The EPSS exploitation probability is 0.63%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049Exploit Public-Facing ApplicationAML.T0050Command and Scripting InterpreterAML.T0053AI Agent Tool InvocationAML.T0084.001Tool DefinitionsCompliance Controls Affected
What are the technical details?
Original Advisory
Langchain-Chatchat through 0.3.1.3 exposes a POST /tools/call API endpoint that invokes any registered tool by name without authentication, leaving the always-registered shell tool callable. Remote attackers can send a single request naming the shell tool to execute arbitrary OS commands as the server user (root in the shipped Docker image).
Exploitation Scenario
An attacker scans for exposed Langchain-Chatchat instances on its default API port, or finds one on an internal network after initial foothold. They send a single POST request to /tools/call naming the shell tool with a command such as downloading and running a payload or opening a reverse shell. The command runs as root inside the container. The attacker then harvests LLM provider API keys, environment variables, and knowledge-base documents, modifies the vector store to poison RAG answers, and uses the host as a pivot or for cryptomining on GPU resources.
Weaknesses (CWE)
CWE-306Missing Authentication for Critical FunctionPrimaryCWE-306Missing Authentication for Critical FunctionCWE-306 — Missing Authentication for Critical Function: The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
- [Architecture and Design] Divide the software into anonymous, normal, privileged, and administrative areas. Identify which of these areas require a proven user identity, and use a centralized authentication capability. Identify all potential communication channels, or other means of interaction with the software, to ensure that all channels are appropriately protected, including those channels that are assumed to be accessible only by authorized parties. Developers sometimes perform authentication at the primary channel, but open up a secondary channel that is assumed to be private. For example, a login mechanism may be listening on one network port, but after successful authentication, it may open up a second port where it waits for the connection, but avoids authentication because it assumes that only the authenticated party will connect to the port. In general, if the software or protocol allows a single session or user state to persist across multiple connections or channels, authentication and appropriate
- [Architecture and Design] For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
- github.com/chatchat-space/Langchain-Chatchat/blob/a6a9193b5002061719f0eee62c6310bd5b1b7f63/libs/chatchat-server/chatchat/server/api_server/tool_routes.py
- lasso.security/vulnerability-database/cve-2026-75128
- vulncheck.com/advisories/langchain-chatchat-through-0.3.1.3-unauthenticated-rce-via-tools-call-endpoint
Timeline
Related Vulnerabilities
CVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Code ExecutionCVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Code ExecutionCVE-2025-282810.0LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Auth BypassCVE-2025-5376710.0Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Auth BypassCVE-2024-291210.0BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Code Execution