TL;DR

Between 2026-09-30 and 10-01 MITRE published eight CVEs, all citing GitHub issues and gists filed by one researcher (Ro1ME) in April–May 2026, against six open-source agent frameworks that people fork, self-host and build "AI coworkers" on: Devika executes LLM-generated content in Runner.execute / Runner.run_code (CVE-2026-51871, 9.8; CVE-2026-51872); DeepTutor's TutorBot ExecTool pipes model-generated shell commands into a subprocess from a WebSocket chat (CVE-2026-51870, 9.8); DB-GPT runs a script uploaded through /api/v1/skills/upload when the react-agent chat later calls it (CVE-2026-51866, 9.8); AgentScope's RealtimeAgent lets a remote WebSocket user prompt the agent into execute_python_code with no approval or isolation step (CVE-2026-51856, 9.8); agent-zero's file browser is rooted at the host filesystem root and accepts unnormalised paths (CVE-2026-51853, 7.5; CVE-2026-51852); and Langflow's /api/v1/validate/code forwards raw Python into compile()/exec() behind authentication (CVE-2026-51886). None of the CVE records names a fixed version; four of the six issues show no maintainer reply; DB-GPT has a linked fix PR and Langflow assigned a maintainer. These are the "an agent is a remote shell with a chat UI" class — if you self-host any of them, put an OS boundary under it today and assume the model's output is attacker input.

What happened

The source shape. None of this came through a vendor advisory tab, a security blog or a CNA that validates fixes. MITRE (cve@mitre.org) assigned the ids in bulk and the only references are the reporter's GitHub issue and a gist per bug. The issues were opened 2026-04-20 (agent-zero), 05-05 (AgentScope), 05-07 (DB-GPT), 05-23 (Devika, DeepTutor) and 05-26 (Langflow) — four to five months before the CVEs. The advisory database's agent and llm recency listings showed them on 09-30 as unreviewed entries with no package metadata; the NVD keyword window for langflow surfaced the eighth on 10-01. Per this repo's rule for small projects with no advisory channel (LEARNINGS.md §10), the detailed issue is the primary and the CVE assignment is the second signal — so the status is unconfirmed, stated plainly: no vendor has confirmed, scored or fixed these in a form this sweep could read.

Per project (CVE record text, then what the issue page shows):

Project / CVE The bug (NVD description, abridged) CVSS Issue status (fetched 2026-10-01)
Devika v1.0 — CVE-2026-51871 Runner.execute in src/agents/runner/runner.py "allows an attacker to achieve arbitrary code execution by exploiting the direct execution of LLM-generated content" 9.8 Issue #714 (05-23): open, no reply, no fix. Reporter demonstrates a two-turn prompt-injection flow that writes a marker file.
Devika v1.0 — CVE-2026-51872 Code injection via Runner.run_code in the same file unscored Issue #715 (05-23): sibling report.
DeepTutor v1.4.0 — CVE-2026-51870 Command execution in /tutorbot/agent/tools/shell.py:ExecTool.execute 9.8 Issue #506 (05-23): closed, labelled bug, no maintainer text, no fix PR shown. Reporter: LLM-generated commands go to asyncio.create_subprocess_shell from the WebSocket chat.
DB-GPT 0.7.5 / 0.8.0 — CVE-2026-51866 "a skill uploaded through the real /api/v1/skills/upload route can later be executed through the real /api/v1/chat/react-agent flow" 9.8 Issue #3047 (05-07): closed with linked PR #3071; labels "bug", "Waiting for reply". The only one of the six with a visible fix path. Which release carries #3071 is not stated.
AgentScope 1.0.18–1.0.19 — CVE-2026-51856 When a RealtimeAgent session exposes execute_python_code, "a remote WebSocket user can prompt the agent to call that tool and run Python code in the service environment"; RealtimeAgent._acting forwards the model's tool call to Toolkit.call_tool_function "without an additional approval or isolation boundary" 9.8 Issue #1563 (05-05): open, no reply, no fix. PyPI shows 1.0.20 (05-15), 1.0.21 (05-25) and a 2.x line (latest 2.0.9); nothing this sweep read says any of them changes the path.
agent-zero 1.7–1.10 — CVE-2026-51853 FileBrowser.__init__ "initializes with the host root directory as the workspace, allowing the agent to access any file on the system" 7.5 Issue #1539 (04-20): closed, no visible reply, no linked fix.
agent-zero 1.7–1.10 — CVE-2026-51852 FileBrowser.save_file_b64 accepts user-controlled paths without normalisation (traversal) unscored Issue #1540 (04-20).
Langflow ≤ 1.9.3 — CVE-2026-51886 /api/v1/validate/code "accepts raw Python source and forwards it into a server-side compile/exec validation path without any visible entitlement guard" (authenticated) unscored Issue #13336 (05-26): closed, labels "bug" + "security", assigned to a maintainer; no fix version named. Langflow has since shipped 1.10–1.12 and an eleven-CVE IBM bulletin; whether this endpoint changed is not stated in anything fetched.

What the class is. Every entry is a variant of the same design: the framework gives the model (or an authenticated user, or a WebSocket peer) a tool that runs code or shell on the server, and treats the model's choice to call it as authorisation. That is the PraisonAI / Flowise / Langflow pattern this corpus has filed a dozen times, now with a CNA-assigned id attached to each of five more projects. The practical difference from a "normal" CVE: there is no patch to pull, so the only remediations are architectural.

What this corpus does not know. Whether any maintainer disputes the reports; whether DeepTutor's and agent-zero's closed issues were closed as fixed, as by-design, or as stale; and whether Langflow's 1.10+ releases touched validate/code. Treat the version ranges as "reported against," not "known to end at."

Am I affected?

You are in scope if you self-host any of the six — including as a fork, a Docker image, or a "deploy this agent" template — and anyone other than you can reach its API or WebSocket.

# Which of these are installed, and at what version?
pip show agentscope langflow 2>/dev/null | grep -E '^(Name|Version):'
for d in devika DeepTutor DB-GPT agent-zero; do [ -d "$d" ] && (cd "$d" && git log -1 --format="$d %h %cd"); done
docker ps --format '{{.Image}}' | grep -iE 'devika|deeptutor|db-gpt|dbgpt|agentscope|agent-zero|langflow'

# Is the code-execution surface reachable? (any non-loopback bind = reachable)
ss -ltnp | grep -E ':(1337|3000|5000|5670|7860|8000|8080|8501)\b'
# agent-zero: is the file browser rooted at / ?
grep -n 'FileBrowser' -r agent-zero/python/helpers/file_browser.py 2>/dev/null | head -3
# AgentScope: is execute_python_code registered on any RealtimeAgent toolkit?
grep -rn 'execute_python_code' --include='*.py' . | grep -v site-packages | head
# Langflow: the endpoint exists on every version; what matters is who holds an API key / login
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:7860/api/v1/validate/code

If you are affected

  1. Bind to loopback or a private network now, put authentication in front if the framework has none, and put the whole thing in a container or VM with no ambient cloud credentials — the model's code-execution tool runs as the service, so the service must own nothing you care about. → playbooks/if-your-local-ai-agent-was-exploited.md, prevention/agent-sandboxing.md
  2. If an instance was internet-reachable: treat it as compromised, rotate every key in its environment and .env → playbooks/rotating-cloud-credentials.md, and audit the data it could read (DB-GPT and Langflow hold database and provider credentials by design).
  3. Watch the issue links below rather than a CVE feed for the fix; MITRE records will not be updated when a maintainer merges something.

Prevention

  • Model output is attacker input. A tool that executes code must sit behind an approval step the user takes, in a sandbox the framework does not control — never gated by the model's own decision to call it. prevention/agent-sandboxing.md
  • For anything with a WebSocket or HTTP agent endpoint, the question "who can open a session?" is the whole security model; default binds and example docker run lines in READMEs are routinely 0.0.0.0 with auth off (see Obot in the MCP/agent batch).
  • When you fork a research framework into a product, the "File browser rooted at /" and "trust_remote_code=True by default" class of convenience defaults ships with it; playbooks/auditing-a-vibe-coded-repo.md lists what to grep for first.

Update — 2026-10-04: thirteen more MITRE ids for the same reporter's gists landed on 10-01/02 — Devika ×3, Langchain-Chatchat ×3, SuperAGI ×4, AgentScope, Langflow — and a different reporter's VulDB record gives InternLM MindSearch a 9.3 with "the vendor … did not respond in any way"; HKUDS's other agent (Vibe-Trading) shows what the fixed version of this story looks like

The wave did not stop at eight. Between 2026-10-01 and 10-02 MITRE published thirteen further CVEs whose only references are gist.github.com/Ro1ME/… (plus, for Langflow, the already-tracked issue #13336). NVD carries a CVSS for only one of them (CVE-2026-51899, 4.3, from the CISA ADP); none names a fixed version or a maintainer reply.

Product Ids (all cve@mitre.org, 10-01/02) What the record says
Devika v1.0 CVE-2026-51873, -51874, -51875 save_code_to_project in the Coder, Patcher and Feature agents writes "files outside the intended project workspace" — path traversal in three agents that share one helper; sits beside the two 9.8 code-injection ids above.
Langchain-Chatchat 0.3.0 / 0.3.1 CVE-2026-51882, -51883, -51884 the OpenAI-compatible /v1/files upload, knowledge-base creation/document upload, and /knowledge_base/upload_temp_docs all take attacker-controlled filenames into host file writes. New product for this file: a widely forked Chinese-language RAG/chat framework.
SuperAGI ≤ 0.0.14 CVE-2026-51899 (4.3), -51901, -51904, -51914 controller endpoints (/api/agents/create, /schedule, /delete, /edit_schedule, /stop_schedule), /api/agentexecutions/schedule, create_agent_execution and the agent-template controller lack per-organisation access control — authenticated users act on other tenants' agents.
AgentScope 1.0.20 CVE-2026-51922 execute_shell_command (src/agentscope/tool/_coding/_shell.py) code injection — the shell twin of the RealtimeAgent execute_python_code id above, one version later.
Langflow ≤ 1.8.4 CVE-2026-51888 absolute-path traversal in knowledge_bases.py:create_knowledge_base → "arbitrary file write outside the intended workspace or storage boundary." Gist only, no issue; Langflow's own tab (walked 2026-10-04) has 09-28 entries for other bugs and nothing for this or for /api/v1/validate/code.

InternLM MindSearch 0.1.0 — CVE-2026-105135 (CNA VulDB, published 2026-10-04, CVSS 4.0 9.3 / 3.1 10.0, CWE-74): "ExecutionAction.run of the file mindsearch/agent/graph.py of the component Planner Agent. The manipulation of the argument inputs leads to code injection. The attack can be initiated remotely. The exploit has been disclosed to the public and may be used. The vendor was contacted early about this disclosure but did not respond in any way." Reference is a gist by a different reporter (DReazer). Same class — a planner that executes model-generated code — different researcher, different CNA, same outcome: no fix, no reply.

The counter-example. HKUDS, the org behind DeepTutor (two ids above, issue unanswered), also publishes Vibe-Trading (vibe-trading-ai on PyPI), an LLM trading-agent framework. Its maintainers issued three vendor advisories on 2026-07-29 (database-reviewed 2026-10-02): GHSA-v2f8-6655-7grj (Critical, CVSS 3.1 9.8 / 4.0 10.0 — the auth dependency "returns immediately when API_AUTH_KEY is unset," leaving every endpoint open, with upload and an RCE-as-root chain), GHSA-jqmf-mx4f-hfr6 (Critical — "LLM-callable tools permit command execution, code injection, and SSRF") and GHSA-5rmq-chc7-m22f (High — file-read tools expose arbitrary server files); all fixed in 0.1.7. It is out of this corpus's audience as a trading bot, but it is the same org, the same class of bug, and the version of the process that ends with a fix line — which is why it is here as the contrast. Status of this file stays unconfirmed: twenty-one ids, one CVSS from a third party, zero maintainer statements.

Update — 2026-10-05: two more ids on 10-02 for a seventh framework, FinRobot 1.0.0 (CVE-2026-51917, CVE-2026-51918) — code injection in CodingUtils.modify_code and CodingUtils.create_file_with_code; VulnCheck's SiYuan and Heym ids are tracked elsewhere

The NVD keyword window for coding (10-02 → 10-05) surfaced two further cve@mitre.org records published 2026-10-02 against FinRobot 1.0.0 (AI4Finance Foundation's LLM financial-agent framework): CVE-2026-51917, "vulnerable to Code Injection in CodingUtils.modify_code," and CVE-2026-51918, "code injection in CodingUtils.create_file_with_code()." Both descriptions are one sentence, neither carries a score, neither names a fixed version, and the id block sits inside the same 5185x–5192x range as the rest of this wave, so this sweep lists them here rather than opening a new file; the gist references were not opened and no FinRobot issue was located. The pattern is the file's thesis in miniature — a helper that writes model-generated code to disk and runs it, reachable from a chat turn. Status unchanged (unconfirmed). The 10-04 and 10-05 VulnCheck ids for SiYuan (CVE-2026-105205) and Heym (CVE-2026-105396, HITL review-token leak via a spoofable Origin header, 5.3, fixed 0.0.112) belong to products already tracked in the MCP batch and are noted there by reference only.

Update — 2026-10-06: SuperAGI's share of the wave is six ids, not four — CVE-2026-51904 (9.8) and CVE-2026-51915 (9.8) for agent-execution and tool controllers that take a caller-supplied id without checking the organisation, CVE-2026-51914 (8.8, agent templates), CVE-2026-51901 (8.1, scheduling another organisation's agents), CVE-2026-51916 (7.5, deleting any knowledge object) and the 51899 (4.3) already listed; all against v0.0.14, all scored by CISA's ADP, none with a fix

The NVD keyword query for SuperAGI (published 2026-10-02) returns six cve@mitre.org records, and the database's agent recency listing shows GHSA entries for four of them on 10-02 (GHSA-63jh-v3gf-wqcq for 51904 among them). All six describe the same defect in different controllers of TransformerOptimus/SuperAGI "up to v0.0.14": an endpoint "accept[s] a caller-supplied agent_id" (or tool_id, or knowledge_id) "and fail[s] to verify organization ownership," so an authenticated user in one organisation acts on another's objects. The scores are CISA-ADP's, not the CNA's: CVE-2026-51904 9.8 (create_agent_execution / create_agent_run in controllers/agent_execution.py), CVE-2026-51915 9.8 (get_tool / update_tool), CVE-2026-51914 8.8 (save_agent_as_template / publish_template), CVE-2026-51901 8.1 (/api/agentexecutions/schedule), CVE-2026-51916 7.5 (POST /knowledges/delete/{knowledge_id}), CVE-2026-51899 4.3 (the five /api/agents/* controller endpoints). References are the reporter's gists and, for two of them, SuperAGI issues #1556 and #1557. Nothing names a fixed version; the project's last release predates the reports. Status unchanged (unconfirmed, single reporter, no vendor response); the SuperAGI block in the tools list above should be read as "≤ 0.0.14, six ids." These are multi-tenant authorization failures rather than the model-output-execution sink that is this file's thesis, and are kept here only because they belong to the same reporter's same-day batch.

Update — 2026-10-30: four more MITRE ids for the same reporter on 2026-10-29 — SuperAGI CVE-2026-51902, CVE-2026-51903, CVE-2026-51905 (cross-organisation reads) and agent-zero CVE-2026-51851 (file browser path traversal, 1.7 to 1.10)

Four cve@mitre.org records published 2026-10-29, each referencing a Ro1ME gist and a repository issue, no CVSS, no fixed version:

  • SuperAGI v0.0.14, three ids. CVE-2026-51902: /api/agents/get/project/{project_id} returns another organisation's agent list to any authenticated user (issue #1558). CVE-2026-51903: get_agent_by_latest_execution in superagi/controllers/agent_execution.py returns another organisation's latest execution and agent metadata. CVE-2026-51905: get_agent_execution_configuration in agent_execution_config.py returns another organisation's execution configuration (issue #1559). With the six ids of 10-02 this makes nine SuperAGI records for one release, all the same missing organisation check in different controllers.
  • agent-zero 1.7, 1.8, 1.9 and 1.10, CVE-2026-51851. python/helpers/file_browser.py:FileBrowser.save_text_file takes a caller path without normalisation, so a write lands outside the intended directory (issue #1541). It sits beside the two file-browser ids this file already carries from 09-30, which were reads rooted at /.

The database's agent listing shows all four as unreviewed rows dated 2026-10-29 with "Unknown" severity. Nothing here changes the file's status: the reporter's issues remain the only record, and no maintainer has named a fixed version for either project in anything read this run.

Sources for this update: CVE Services — CVE-2026-51902, CVE-2026-51903, CVE-2026-51905, CVE-2026-51851 — fetched 2026-10-30: CNA mitre, published 2026-10-29, the descriptions and the issue and gist references, no metrics, no versions beyond the description text; GitHub Advisory Database — agent listing — fetched 2026-10-30: the four rows.

Update — 2026-11-06: three VulDB ids for AgentScope 2.0.x from a different reporter (CVE-2026-123022, 123023, 123024); one fixed in 2.0.9, two with a pull request "awaiting acceptance"

VulDB published three records on 2026-11-05 against agentscope-ai/AgentScope 2.0.x, each referencing a GitHub issue filed on 2026-10-23 and a write-up in the reporter's ybyu-ieu/agent-security-advisories repository (not opened this run). All three print CVSS 4.0 6.9 and 3.1 7.3, VulDB's standard shape:

  • CVE-2026-123022, subprocess.Popen in src/agentscope/mcp/_config.py (the MCP Workspace API): "manipulation of the argument command results in os command injection", remote, "the pull request to fix this issue awaits acceptance". Affected 2.0.0 through 2.0.11; 2.0.11 is PyPI's newest (2026-10-27).
  • CVE-2026-123024, get_current_user_id in src/agentscope/app/deps.py (Agent Service): the X-User-ID header stands in for authentication, remote, same open pull request.
  • CVE-2026-123023, check_permissions in src/agentscope/tool/_builtin/_bash.py (Bash Tool): incorrect authorization, "upgrading to version 2.0.9 mitigates this issue", patch commit 6b43b13a46401e86abd3defeed9a8bfe5b37bc6d; affected 2.0.0 through 2.0.8, PyPI dates 2.0.9 to 2026-09-28.

The pull request the two unfixed records name, #3448 (2026-10-23), adds an opt-in allowed_stdio_commands parameter to create_app() that rejects stdio MCP configurations whose command is not on the list; its author says it is a partial mitigation that "does not add authentication or sandboxing", and on 2026-11-06 it was open with no maintainer review. A merged opt-in allowlist would be mitigated for operators who set it, not a fix; an unmerged one is nothing. These are different bugs from the RealtimeAgent WebSocket issue in the table above (1.0.18 and 1.0.19, CVE-2026-51856) and from the 2.0.7.post1 LocalWorkspace traversal (CVE-2026-85685); AgentScope's advisory-database query now returns twenty-three rows across three reporters. The 2.0.x Agent Service and MCP Workspace API are HTTP surfaces; keep them off the network or behind your own authentication until a release carries the fix.

Sources