The approval prompt nobody is there to answer
Five agents, five records, one week, and the same missing step: the agent has a shell tool and nobody is asked before it runs. Human approval is a feature of the terminal. Move the agent into Slack, a chat endpoint or a server, and the human is the first thing to go.
Four CVEs landed on the same day from the same three researchers, against four unrelated agent products. A fifth, from someone else, arrived five days earlier. One sentence describes all of them. The agent has a shell tool, and before it runs a command, nobody is asked.
The gate was built for a terminal
OpenSRE is the instructive one, because it did build an approval gate. In a terminal, the agent stops and asks before it runs a command. But the agent also answers in Slack, and the code that stands in for the terminal there has to answer the same question with nobody to put it to. This is how it answers:
# gateway/transports/slack/processing/dispatcher.py
# No approval prompts in Slack for now. Button waits stalled the
# turn until the timeout and posted extra replies in the thread.
# tools/interactive_shell/subprocess_presenter.py
def execution_allowed(self, policy, *, action_summary) -> bool:
_ = (policy, action_summary)
return TrueThat comment is honest, and it is the whole story. Nobody decided to remove the safety. A real usability problem, a button that stalled the conversation, was solved by answering yes. The gate was a piece of user interface, and when the interface changed, the gate defaulted to open because open is what keeps the product working.
Every deployment that matters is headless
The other four did not get as far as a stub. Three records describe a shell tool with no approval step at all, reached from a chat endpoint, a document upload or a fetched web page. Archon is the purest form: a coding agent whose own permission prompts are switched off, behind a control API that listens on every interface. A server cannot click a button, so the button goes.
Look at where the instructions come from in each case: alerts, Slack messages, retrieved web content, uploaded documents, an open HTTP port. None of these is the operator. An agent becomes useful precisely when it runs unattended on other people's input, and that is exactly the deployment in which a human-in-the-loop control has no human in the loop.
Trust is the attack surface
An agent that stops and asks before every command looks safe, and in the demo it is, because the demo runs in a terminal. It is a property of the session, not of the tool, and nothing in the product tells you when the session you deployed is the one where the answer is always yes.
What to actually do
- List every agent you run without a terminal. Slack and Teams bots, webhooks, schedulers, chat endpoints. For each one, find out what happens to command approval there. If the answer is auto-approve, treat its shell tool as remote code execution for anyone who can write to its inputs.
- Make the headless answer no. When nobody can be asked, the gate must deny, not allow. A slow or failed turn costs a retry. A yes costs the host.
- Take the shell away from unattended agents. Give them narrow tools with fixed arguments instead. An SRE bot that needs to restart a service needs a restart tool, not bash.
- Run the agent with nothing worth stealing. Every one of these records lists the agent's own keys and credentials as the prize. Keep them out of its environment and out of its reach.
- Bind control ports to loopback and require authentication. An agent API on 0.0.0.0 with no login is a shell for the network, whatever the agent was told to do.
- Four CVE records assigned by VulnCheck and published 20 October 2026, all crediting the same finders, Noy Pearl, Michael Sromin and Ophir Dror: CVE-2026-109444 (OpenSRE through 0.1.2026.10.19), CVE-2026-109440 (LangAlpha through 2026.09.07), CVE-2026-109442 (piflow 2.0.0 through 2.0.1) and CVE-2026-77926 (Aix-DB 1.2.4).
- A fifth record, CVE-2026-111322, assigned by VulnCheck and published 15 October 2026, covers Archon 0.2.13 through 0.11.1 and credits the finder hieuPenguinnn.
- None of the five records names a fixed version.
- Mechanism per the records. CVE-2026-109444: the headless presenter's execution_allowed() always returns True, so shell_run commands run without confirmation, triggered by instructions injected into alerts or Slack messages the agent triages. CVE-2026-109440: Bash and ExecuteCode lack an allow-list and human-in-the-loop approval, triggered by instructions planted in web content the agent retrieves. CVE-2026-109442: the unauthenticated POST /chat and POST /chat/stream endpoints let anyone instruct the agent to call exec_shell, which runs commands via subprocess.run without human approval or an allow-list. CVE-2026-77926: the ChatBI common agent's execute tool is ungated, reachable by authenticated non-admin users through chat input or uploaded documents. CVE-2026-111322: the /api/* control API binds to 0.0.0.0 by default with no authentication, and the AI coding agent behind it runs with bypassPermissions.
- What the records say is exposed: LLM, Slack and cloud credentials (CVE-2026-109444), vault secrets in _internal/.vault_secrets.json (CVE-2026-109440), environment secrets such as LLM API keys and database credentials (CVE-2026-109442), datasource credentials and model API keys (CVE-2026-77926), and commands on the host as the Archon user (CVE-2026-111322).
- Weakness: CWE-862, missing authorization, on CVE-2026-109444. CWE-1427, improper neutralization of input used for LLM prompting, on CVE-2026-109440. CWE-306, missing authentication for a critical function, on CVE-2026-109442 and CVE-2026-111322. CWE-749, exposed dangerous method or function, on CVE-2026-77926.
- Scores from VulnCheck on CVE-2026-109442 and CVE-2026-111322: CVSS 3.1 base 9.8 and CVSS 4.0 base 9.3, no privileges and no user interaction required.
- Scores from VulnCheck on CVE-2026-109444: CVSS 3.1 base 8.8 and CVSS 4.0 base 8.7, user interaction required.
- Scores from VulnCheck on CVE-2026-77926: CVSS 3.1 base 8.8 and CVSS 4.0 base 8.7, low privileges required.
- Scores from VulnCheck on CVE-2026-109440: CVSS 3.1 base 8.1 and CVSS 4.0 base 8.6, user interaction required, no availability impact.
- CISA's ADP entries record exploitation as proof of concept, automatable as yes and technical impact as total on CVE-2026-109442, CVE-2026-109444 and CVE-2026-111322, and proof of concept, automatable no, impact total on CVE-2026-77926. CVE-2026-109440 carries no ADP assessment.
- NVD status on 21 October 2026 for all five: Deferred, so NVD has published no score of its own.
- In the OpenSRE source at commit 8eba8c9, the commit CVE-2026-109444 cites, HeadlessSubprocessPresenter.execution_allowed() discards its arguments and returns True. The same function on the main branch, read on 21 October 2026, is unchanged.
- Whether fixes exist for any of the five. The records list none. We checked only OpenSRE's main branch, where the presenter still approves everything; we have not checked the other four repositories.
- We reproduced none of the five. Everything here rests on the CVE records and, for OpenSRE, on reading the source.
- Who can reach the agent in a real deployment. For OpenSRE that depends on who can post in the triaged channels or shape the alerts; for piflow and Archon, on what network the port is exposed to. Nobody has published deployment counts, and we hold no telemetry: our public sensor is offline.
- How strong the workspace sandbox that the LangAlpha record mentions actually is. The record says code runs inside it and that vault secrets can still be read.
- NVD has deferred all five, so every score here is VulnCheck's alone.
- 01CVE-2026-109444: OpenSRE approval gate bypass via shell_run prompt injection ↗
- 02CVE-2026-109440: LangAlpha indirect prompt injection RCE via Bash and ExecuteCode ↗
- 03CVE-2026-109442: piflow unauthenticated RCE via chat agent exec_shell ↗
- 04CVE-2026-77926: Aix-DB authenticated RCE via ChatBI common agent execute tool ↗
- 05CVE-2026-111322: Archon missing authentication on the /api/* control API ↗
- 06CVE-2026-109444 record, with the CISA ADP assessment ↗
- 07VulnCheck advisory for CVE-2026-109444 ↗
- 08OpenSRE headless subprocess presenter, at the cited commit ↗
- 09OpenSRE Slack dispatcher, at the cited commit ↗
