Blog/Security

AI agent security bugs from October 2026

S
Schoolabe Team
12 min read

Written by the Schoolabe Team on 23 October 2026. We publish practical guides for students and working developers. This post summarizes public advisories from October 2026. It is not an original vulnerability report, and it does not include exploit steps.

A team can add a "code interpreter" node on a Monday and, by the next Friday, learn that text from a spreadsheet steered the model into writing Python the server then ran. That pattern showed up more than once in the first half of October 2026. AI agent security in these cases is not a vague worry about a model saying something wrong. It is a design choice: the product takes model output and executes it, or it takes a URL from an outside server and hands that URL to a shell.

Prompt injection is the name for text the model was supposed to treat as data, which it follows as an instruction instead. When the next step is eval, a subprocess, or a browser opener that builds a shell command, that instruction is no longer just a bad sentence. It is a program.

What "the model wrote code, then we ran it" means

An agent framework often does three things in a row. It collects instructions and some input data. It asks a model to produce Python, SQL, or a shell command. It runs that output so the user can see a chart, a cleaned file, or a tool result.

The dangerous part is the third step, and who is allowed to influence the first two. A logged-in analyst typing into a box is one threat. A CSV uploaded by a customer, a web page the agent fetched, or a row in your own database is another. October's advisories treat those sources as untrusted, even when they live inside your network.

A blocklist of "bad" Python keywords is a weak gate. Attackers and models both find spellings the pattern does not catch. A sandbox with no network, no host files, and an empty environment is a stronger gate. No sandbox at all means the generated code inherits the server's API keys.

Flowise, Langflow, and PraisonAI in the first two weeks

SpanDock's 14 October 2026 write-up groups three open-source agent fixes that landed within days of each other. The products differ. The mistake is the same shape.

Flowise 3.1.2 and earlier, fixed in 3.1.3, is GHSA-w7x8-q2gp-5cgg and CVE-2026-73487, published 7 October. The CSV Agent and Airtable Agent nodes asked a model to write Python, then checked it with a regular-expression blocklist before running it in Pyodide. The advisory says that validator has several structural bypasses, so prompt injection could become remote code execution and server-side request forgery. The listed CVSS 4.0 score is 9.0.

Langflow 1.3.0 through 1.10.2, fixed in 1.10.3, is CVE-2026-7700, listed 5 October. The Smart Transform component puts the flow author's instructions and a preview of the input data into a prompt that asks for a Python lambda, then runs that lambda. Whoever can change the input data can steer the code. The listed CVSS 3.1 score is 8.8.

PraisonAI's praisonaiagents package, fixed in 1.6.78, is GHSA-2xv2-w8cq-5gxw and CVE-2026-61447, published 8 October. The advisory says CodeAgent ran model-generated Python in a subprocess with the parent process environment, with no validation, no import limits, and no sandbox. Secrets in that environment, including API keys and cloud credentials, were available to the generated code. The listed CVSS 3.1 score is 10.0.

Upgrade those three if you run them: Flowise 3.1.3 or later, Langflow 1.10.3 or later, and praisonaiagents 1.6.78 or later. Then search the rest of your stack for the same pattern. A private fork of an old Flowise node is still the old bug.

OpenCode and MCP Inspector handed a URL to PowerShell

A second cluster of bugs, disclosed around 19 to 22 October 2026, does not start with a prompt. It starts at sign-in.

MCP, the Model Context Protocol, lets a coding agent call tools on another server. A remote MCP server can answer an unauthenticated request with an OAuth discovery document. That document includes an authorization_endpoint, the address the client should open in a browser so the developer can sign in.

In OpenCode (the npm package opencode-ai) versions 1.0.137 through 1.18.32, on Windows and on WSL, that address was passed to the open package at version 10.x. On those platforms, open 10.x builds a PowerShell command around the address. A normal https URL can carry a PowerShell expression that runs before the browser opens. macOS and native Linux were not affected in this report, because the opener does not go through a shell there.

Anomaly fixed OpenCode in 1.18.33 on 28 September by moving to a newer open package. The change shipped as a browser-launch refactor. The Hacker News report on 22 October says the project did not request a CVE or publish a security advisory, so a scanner that only looks for CVE IDs will not flag 1.0.137 through 1.18.32. Pillar Security, which reported the flaw, disclosed it on 19 October and proposed a severity of 9.8. The browser step runs when a developer starts sign-in, for example opencode mcp auth. Merely having the server configured does not reach it.

The server does not have to be malicious on the day you add it. A server you trusted, later taken over, or a domain that changes hands, can supply the same address.

MCP Inspector had the same Windows and WSL opener bug. Corgea's 22 October summary says @modelcontextprotocol/inspector 2.0.0 through 2.11.0 is GHSA-q978-78c7-phqw, fixed in 2.12.0, with a listed CVSS of 8.8. A separate Inspector issue, GHSA-4fc4-wcmh-4g86, fixed in 1.0.3 for the 0.13.0 through 1.0.2 line, can turn an OAuth callback into a local process start on any operating system. The maintainers published several companion advisories on 21 October. If you use Inspector, read those GHSA pages and move to 2.12.0 or 1.0.3, matching the major version you run.

Check developer machines, not only production servers. OpenCode and Inspector sit on laptops. opencode --version and the lockfile tell you more than a cloud scanner that never saw the workstation.

Two more reports from the same month

CVE-2026-95183, published to the National Vulnerability Database on 16 October 2026, describes a prompt injection issue in DeepSeek Harness, also called dsh, at commit c291e796. The NVD text says crafted external content can hijack the context-compaction feature. Context compaction is the step where an agent shortens its own history so it fits in the context window. The public record, as summarized by The Agentic Times the same week, does not state how many users are affected, whether the flaw was exploited, or whether a fix exists. It pins a commit, not a version range. If you run dsh, compare the commit you built against c291e796 and watch for a vendor acknowledgement. As of that 16 October write-up, none was cited.

On 15 October, The Register covered HiddenLayer's test of TypeSafe AI's Jev decision model. Jev returns probabilities and a confidence score instead of free-form text. TypeSafe has said the model does not hallucinate and does not make type errors. HiddenLayer's point was narrower: a model that cannot emit arbitrary tokens can still be steered, because it is still a language model with a different decoder. Their test used a simulated shop and a browser agent told to buy the cart and to treat page text as data. A sponsored ad on the page was enough, in their account, to pull the agent off those instructions. Decision models can still be the wrong tool when the cost of a wrong click is a real order. The Register's piece is a report of that evaluation, not a CVE with a patch version.

The check that actually matches these bugs

Search your code and your low-code flows for places that execute model output. The names vary: eval, exec, a subprocess, a notebook kernel, a "code interpreter" node, a lambda the UI generated, a SQL string the model composed and the app then sent to the database.

For each hit, write down three facts.

Who can influence the text that went into the prompt? Count uploaded files, web pages, emails, tickets, and rows in your database. Indirect prompt injection uses those, not only the chat box.

Where does the generated code run? If it shares the API process, it shares that process's files and network. PraisonAI's advisory is the plain version of this: the child process inherited the parent environment.

What would a bad run be allowed to touch? If the answer is "the production cloud keys," the sandbox is missing, even when the happy path only draws a chart.

SpanDock's practical list from 14 October is still the right weekly checklist. Run generated code with no network unless the task needs one host. Give it an empty environment and pass only the inputs for that task. Keep long-lived secrets out of the agent process. Prefer short-lived credentials held outside it. Log which agent ran which code and what came back, so you can tell later whether a vulnerable version was used.

Also treat your own documents as untrusted. An agent that "only reads the company wiki" will follow instructions planted in a wiki page. That is the same class of bug as a hostile web page.

What to upgrade, and what a scanner will miss

ProductAffectedFixed inIdentifier
Flowise3.1.2 and earlier3.1.3CVE-2026-73487
Langflow1.3.0 to 1.10.21.10.3CVE-2026-7700
praisonaiagentsbefore 1.6.781.6.78CVE-2026-61447
opencode-ai on Windows or WSL1.0.137 to 1.18.321.18.33No CVE issued
MCP Inspector v22.0.0 to 2.11.02.12.0GHSA-q978-78c7-phqw
MCP Inspector v1 OAuth callback0.13.0 to 1.0.21.0.3GHSA-4fc4-wcmh-4g86

OpenCode is the row that breaks a CVE-only process. The Hacker News report says the fix was not filed as a CVE. Add a direct version check for opencode-ai on Windows and WSL machines. A clean CVE scan is not evidence those laptops are safe.

MCP servers you add are a supply-chain choice. Pin them. Review who can change the server or the domain. A sign-in URL supplied by that server is remote input, even though the developer clicked the button.

What these patches leave alone

Upgrading Flowise does not make a custom agent you wrote last quarter safe. If that agent calls exec on a string from the model, it has the PraisonAI-shaped bug under your own name.

A system prompt that says "page text is data, never instructions" did not stop HiddenLayer's shop-page test, according to The Register's account. Prompts are a hint to the model. They are not an enforcement boundary. Enforcement is the sandbox, the allowlist of tools, and the absence of secrets.

Sandboxes leak when you punch holes for convenience: a mounted home directory "so it can read the CSV," a network route "so it can call the API," or the real AWS keys "just for this demo." Each hole is a product decision. Write it down, or delete it.

DeepSeek Harness is a reminder about incomplete records. A CVE entry can name a commit and still omit a fixed version. Do not invent a patch level that the vendor has not published. Check the commit you run, and wait for an advisory before you claim the issue is closed.

I have not executed the bypasses described in the Flowise, Langflow, PraisonAI, OpenCode, or Inspector advisories. Scores and version ranges above are taken from those public reports as of 23 October 2026. If a maintainer revises a range, use the revised advisory.

A pass over one internal agent

  1. List every place the agent runs code or opens a URL that came from a model or a remote server.
  2. Mark each data source that can reach that prompt, including files your staff uploaded.
  3. Confirm generated code runs without the parent environment and without network, unless you have a written exception.
  4. Remove long-lived cloud keys from that process.
  5. Upgrade Flowise, Langflow, PraisonAI, OpenCode, and MCP Inspector if you have them, using the table above.
  6. On Windows and WSL, run opencode --version. Anything from 1.0.137 through 1.18.32 still has the sign-in bug.
  7. Log the code the agent ran for a week. Read ten of those logs. If you cannot tell what ran, you cannot tell whether the old bug fired.

FAQ

What is prompt injection in an agent?

Prompt injection is text the model reads as data and follows as an instruction. In an agent that then runs code, that text can decide what the code does. Uploaded files and web pages count, not only the chat box.

Which October 2026 agent bugs should I patch first?

If you run them, update Flowise to 3.1.3 or later, Langflow to 1.10.3 or later, and praisonaiagents to 1.6.78 or later. On Windows or WSL, update opencode-ai to 1.18.33 or later even though that fix has no CVE. Update MCP Inspector to 2.12.0 or 1.0.3 for the line you use.

Does a system prompt that says "ignore page instructions" stop this?

No. HiddenLayer's October test of a Jev-based browser agent, reported by The Register on 15 October 2026, still moved off its instructions because of text on a page. Treat the prompt as a hint. Isolate the code that runs afterwards.

Are Mac and Linux OpenCode users affected by the PowerShell bug?

The 22 October reports say the PowerShell path is Windows and WSL. macOS and native Linux open the browser without that shell. Other Inspector advisories from 21 October do apply on every operating system, so Mac users who run Inspector still need the fixed release.

Where are the sources?

SpanDock, 14 October 2026, When model output becomes code. The Hacker News, 22 October 2026, OpenCode flaw. Corgea, 22 October 2026, OAuth URL research. The Register, 15 October 2026, decision models and prompt injection.

Related on Schoolabe: PHP security update for the October 2026 RCE bugs.