BlackTree Security · Infrastructure · Automation · AI

The Agent Asked for Consent. Its Batch Tool Answered for the Operator.

AWS has fixed a consent-bypass vulnerability in the open-source Strands Agents Tools package. A crafted prompt could use one agent tool to silently change how another tool handled approval, turning a human-in-the-loop checkpoint into arbitrary Python execution on the agent’s host.

The flaw is tracked as CVE-2026-78379. It affects strands-agents-tools versions before 0.8.5 and requires both the batch and python_repl tools to be registered on the same agent.

AWS does not report confirmed exploitation. No public proof of concept was identified in the sources reviewed for this article. The vendor’s description nevertheless provides enough detail to show why the boundary failed and why teams using these tools should not wait for evidence of abuse.

The approval prompt trusted a caller-controlled flag

Strands Agents is an open-source Python SDK for building AI agents. Its tools package includes python_repl, which executes Python code on the host, and batch, which invokes several tools in one request.

The Python tool was designed to ask the operator for consent before running code. The vulnerable implementation also accepted a non_interactive_mode setting as an argument. A remote actor who could influence the agent’s prompt could route that setting through the batch tool and cause python_repl to skip the human approval gate.

The model did not need to break out of a kernel sandbox or exploit the Python interpreter. The control failed one level earlier: a less-trusted tool invocation was allowed to alter the policy state of a more dangerous tool.

That distinction connects directly to BlackTree’s earlier analysis, When AI Agents Leave the Sandbox. Agent security depends on enforced boundaries around the model. An approval prompt is not an enforcement boundary if the workflow being approved can also decide that approval is unnecessary.

Exposure depends on the tool combination

Condition Status
Vulnerability CVE-2026-78379, arbitrary Python execution through consent bypass
Affected versions strands-agents-tools before 0.8.5
Required configuration Both batch and python_repl registered on the same agent
Attacker path Untrusted content or a remote actor able to shape a prompt processed by the agent
Fixed version 0.8.5
Workaround Remove either batch or python_repl, and do not expose Python execution to untrusted content
Exploitation status No confirmed malicious exploitation reported
PoC status No public proof of concept identified in the reviewed sources

These prerequisites matter. An installation that never registers python_repl cannot be exploited through this path. An agent that registers the Python tool but not batch does not expose the demonstrated bypass. Risk concentrates in applications that combine both tools and process input an attacker can influence.

The impact can still be severe. Python runs with the permissions, network reach and credentials of the host process. In a poorly isolated environment, code execution could expose local files, cloud credentials, internal services or downstream automation.

The patch moves the decision to operator-controlled state

Version 0.8.5 changes where python_repl obtains the non-interactive setting. The tool now reads it only from the STRANDS_NON_INTERACTIVE environment variable. A caller can no longer forward the flag as a keyword argument through the batch tool.

That is the correct direction. Whether code may execute without confirmation is an operator policy. It should be established outside the model’s prompt and outside any argument list that another tool can construct.

What teams should do

  • Upgrade strands-agents-tools to 0.8.5 or later.
  • Check forks and copied tool implementations for the same caller-controlled non_interactive_mode pattern.
  • Until upgrading, remove either batch or python_repl from every affected agent.
  • Do not make Python execution available to agents that process untrusted documents, messages, web pages or retrieval results unless the execution environment is strongly isolated.
  • Run agent tools with least privilege, narrow network egress and short-lived credentials.
  • Log tool arguments, approval decisions and the final process activity separately so investigators can determine whether consent was genuinely provided.

The security lesson is simple: human approval is only as strong as the code that decides when to ask. When the agent can influence that decision through another tool, the human is no longer in the loop.

Sources and further reading

Leave a Reply

Your email address will not be published. Required fields are marked *