Security researchers have disclosed a class of architectural flaws in agent infrastructure from Amazon Web Services, Google, and Vercel that strikes at the core assumption most AI security programs are built on: that every tool execution is preceded by a model turn. In the affected products, untrusted or outright forged instructions could be delivered directly to an agent's tools with no verification that the model had ever authorized them. In several documented attack paths, the model never ran at all.
That distinction matters enormously. The defensive stack most organizations have deployed around LLM agents — system prompts, content filters, model-level guardrails, refusal training — all sit upstream of tool execution and all depend on the model actually being in the loop. These flaws route around the entire layer. If your detection strategy for AI agent abuse is "watch what the model says," you are blind to this attack class.
If you operate production agents built on AWS agent services, Google's agent tooling, or the Vercel AI SDK, treat this as an urgent review item: verify you are on patched versions, and more importantly, audit whether your tool execution path enforces authorization independently of the model.
Technical Analysis
Affected Products and Platforms
Per the disclosure, affected products span the three largest ecosystems teams use to build and deploy autonomous agents:
- Amazon Web Services — agent infrastructure supporting tool-calling workflows (including managed agent/orchestration services and agent frameworks such as those used with Amazon Bedrock-based agents)
- Google — agent development and orchestration tooling used to wire models to tools
- Vercel — the Vercel AI SDK, one of the most widely adopted open-source frameworks for building tool-calling agents in TypeScript/JavaScript applications
No CVE identifiers were published in the initial reporting, and specific version numbers should be confirmed against the vendor advisories linked in the Remediation section. Do not wait for a CVE to act — framework-level architectural flaws are frequently patched via version bumps and advisory notes rather than formal CVE assignment.
How the Attack Works
The flaw class is best understood as a broken trust boundary between the message plane and the tool plane. In a correctly designed agent loop:
- User or external input reaches the model.
- The model reasons and emits a structured tool call.
- The runtime validates the tool call and executes the tool.
- Results return to the model.
In the vulnerable implementations, step 2 could be skipped or forged. Attack paths identified by researchers include:
- Direct tool invocation without a model turn. Externally reachable endpoints or message handlers accepted tool-call-shaped input and executed it directly. Because the model never ran, system prompts, content filters, and model-level guardrails had no opportunity to intervene.
- Forged tool-call authorization. Tool requests could be constructed client-side or injected mid-flow in a format indistinguishable from a legitimate model-emitted call, with no cryptographic or session binding proving the model actually produced them.
- Replay and injection into the tool channel. Instructions arriving via untrusted content (retrieved documents, API responses, user-controlled fields) could traverse the tool execution path without passing through model-level review.
From a defender's perspective, the exploitation requirements are low: the attacker needs reachability to the agent's exposed surface (an HTTP endpoint, a queued message, a tool callback) — not prompt-engineering skill. This is closer to a classic missing-authorization / insecure-direct-object-reference flaw than to a jailbreak, and it should be triaged with the same seriousness as an auth bypass in any production API.
Why Guardrail-Centric Defense Fails Here
Most AI security controls deployed in 2025–2026 are model-centric: input filters, output classifiers, system-prompt hardening, and guardrail services that inspect model I/O. Every one of these controls assumes the model is a mandatory waypoint. This disclosure demonstrates that in widely used frameworks, it was not. Any control that inspects "prompts" or "completions" — and nothing else — is architecturally incapable of seeing this attack.
The correct mental model going forward: treat every tool invocation as an untrusted request that must be authorized at the tool layer, exactly as you would treat an API request hitting a sensitive backend function.
Exploitation Status
At time of writing, the flaws were disclosed through coordinated vendor patching (AWS, Google, and Vercel have shipped fixes). No CVE identifiers or CVSS scores were included in the initial reporting, and there is no confirmed in-the-wild exploitation or CISA KEV listing. However, given the ubiquity of the Vercel AI SDK in production Next.js applications and the volume of agent deployments on AWS and Google Cloud, defenders should assume motivated adversaries will reverse the patches quickly. The window between patch release and weaponization for framework-level flaws is consistently measured in days, not months.
Detection & Response
Detection for this threat class lives in three places: tool execution telemetry, sequence integrity (did a model turn precede this tool call?), and runtime behavior (agent processes doing things agents shouldn't do).
The rules below are tuned to be high-signal. The Sigma web-server rule is intentionally narrow — tune the path list to your actual agent routes before deploying broadly.
---
title: Direct Tool Invocation on AI Agent Endpoint Without Model Turn
tid: 3f7c2a91-6b4d-4e8a-9c1f-2d5e8a7b9c01
status: experimental
description: Detects HTTP requests hitting AI agent tool-invocation endpoints with tool-call payloads, which may indicate forged instructions reaching tools without a model turn, as disclosed in AWS/Google/Vercel agent framework flaws.
references:
- https://thehackernews.com/2026/08/aws-google-and-vercel-patch-agent-flaws.html
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/08/10
tags:
- attack.initial_access
- attack.t1190
logsource:
category: webserver
detection:
selection_paths:
cs-uri-stem|contains:
- '/api/chat'
- '/api/agent'
- '/api/tools'
- '/tool/invoke'
- '/tools/call'
- '/api/function'
selection_payload:
cs-body|contains:
- '"tool_calls"'
- '"tool_call_id"'
- '"function_call"'
- '"toolInvocations"'
- '"name":"execute"'
condition: selection_paths and selection_payload
falsepositives:
- Legitimate client-side agent UI traffic from the Vercel AI SDK useChat hook posts tool results to the chat endpoint; baseline your application routes and restrict to requests missing expected session cookies or originating from unusual sources
level: high
---
title: Agent Runtime Process Spawning Shell or Script Interpreter
tid: 8b1e4d62-9a3f-4c7b-b5e2-6f0a1c3d5e78
status: experimental
description: Detects Node.js or Python agent runtimes spawning shells or script interpreters, consistent with abused tool executions achieving command execution after guardrail bypass in AI agent frameworks.
references:
- https://thehackernews.com/2026/08/aws-google-and-vercel-patch-agent-flaws.html
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/08/10
tags:
- attack.execution
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\node.exe'
- '\python.exe'
- '\python3.exe'
- '\bun.exe'
- '\deno.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\certutil.exe'
- '\curl.exe'
condition: selection_parent and selection_child
falsepositives:
- Build tooling and developer workstations running Node-based CLIs; restrict to production agent service accounts and server workloads
level: high
---
title: Suspicious Tool or Function Invocation in AWS CloudTrail Without Preceding Model Call Context
tid: 5c9a3f71-2e8d-4b6a-a1c4-7d0e2f8b3a45
status: experimental
description: Detects Lambda function invocations or Bedrock agent action executions in CloudTrail originating from atypical user agents or unauthenticated contexts, which may indicate forged tool invocations against AWS agent infrastructure.
references:
- https://thehackernews.com/2026/08/aws-google-and-vercel-patch-agent-flaws.html
- https://attack.mitre.org/techniques/T1190/
author: Security Arsenal
date: 2026/08/10
tags:
- attack.initial_access
- attack.t1190
logsource:
product: aws
service: cloudtrail
detection:
selection_events:
eventSource:
- 'lambda.amazonaws.com'
- 'bedrock.amazonaws.com'
eventName:
- 'Invoke'
- 'InvokeAgent'
- 'InvokeModel'
selection_anomaly:
userAgent|contains:
- 'curl'
- 'python-requests'
- 'axios'
- 'node-fetch'
- 'Go-http-client'
condition: selection_events and selection_anomaly
falsepositives:
- Legitimate SDK-based automation uses similar user agents; correlate with expected invocation sources, VPC endpoints, and known deployment pipelines before escalating
level: medium
The highest-fidelity hunt available to most teams is sequence integrity analysis: find tool executions with no corresponding model invocation in the preceding window. That is precisely the attack signature here — the model never ran.
// Hunt: Tool executions on AI agent endpoints with NO preceding model API call
// Requires application/web logs ingested into Sentinel (e.g., via AzureMonitor or custom logs)
// Adjust table/field names to your ingestion schema.
let window = 5m;
let ToolCalls =
AzureDiagnostics
| where TimeGenerated > ago(24h)
| where requestUri_s has_any ("/api/chat", "/api/agent", "/api/tools", "/tool/invoke")
| where httpMethod_s == "POST"
| extend ClientIP = clientIP_s, URI = requestUri_s, ToolTime = TimeGenerated;
let ModelCalls =
AzureDiagnostics
| where TimeGenerated > ago(24h)
| where requestUri_s has_any ("completions", "generateContent", "converse", "InvokeModel")
| extend ModelTime = TimeGenerated, ModelClient = clientIP_s;
ToolCalls
| join kind=leftanti (
ModelCalls
| where ModelClient == ClientIP
| where ModelTime between (ago(window) .. now())
) on $left.ClientIP == $right.ModelClient
| project ToolTime, ClientIP, URI, httpStatus_d, userAgent_s
| order by ToolTime desc;
// Secondary hunt: AWS Bedrock/Lambda invocations from non-SDK user agents (CloudTrail via CEF/Syslog ingestion)
CommonSecurityLog
| where TimeGenerated > ago(24h)
| where DeviceProduct has "CloudTrail" or AdditionalExtensions has "cloudtrail"
| where RequestContext has_any ("bedrock", "lambda") and RequestContext has "Invoke"
| where ApplicationProtocol has_any ("curl", "python-requests", "axios", "Go-http-client")
or AdditionalExtensions has_any ("curl", "python-requests", "axios")
| project TimeGenerated, SourceIP, RequestContext, ApplicationProtocol, AdditionalExtensions
| order by TimeGenerated desc;
// Tertiary hunt: agent runtime processes spawning shells (Defender for Endpoint)
DeviceProcessEvents
| where TimeGenerated > ago(24h)
| where InitiatingProcessFileName in~ ("node.exe", "node", "python.exe", "python", "python3", "bun", "deno")
| where FileName in~ ("cmd.exe", "powershell.exe", "pwsh.exe", "sh", "bash", "curl", "wget")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine, AccountName
| order by TimeGenerated desc;
For endpoint forensics on servers hosting self-built agents (Vercel AI SDK apps typically run as Node processes), Velociraptor gives you fast scoping of which agent runtimes have both network listeners and suspicious child processes.
-- Hunt for AI agent runtimes (Node/Python) with active network connections
-- and shell-like child processes, consistent with tool-invocation abuse
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)^(node|python|python3|bun|deno)'
AND CommandLine =~ '(?i)(next|server|agent|ai-sdk|langchain|vertex|bedrock)'
-- Correlate agent processes with outbound connections to unusual destinations
SELECT Pid, Name, CommandLine, netstat().RemoteAddress AS RemoteAddr,
netstat().RemotePort AS RemotePort, netstat().Status AS ConnStatus
FROM pslist()
WHERE Name =~ '(?i)(node|python|bun|deno)'
AND netstat().Status =~ 'ESTABLISHED'
AND netstat().RemotePort in (80, 443, 8080, 8443)
-- Find shells spawned by agent runtimes (command execution after guardrail bypass)
SELECT child.Pid, child.Name AS ChildName, child.CommandLine AS ChildCmd,
parent.Name AS ParentName, parent.CommandLine AS ParentCmd,
child.Username, child.CreateTime
FROM pslist() AS child
JOIN pslist() AS parent ON child.Ppid = parent.Pid
WHERE parent.Name =~ '(?i)(node|python|bun|deno)'
AND child.Name =~ '(?i)(cmd|powershell|pwsh|sh|bash|curl|wget|nc)'
Remediation
The core fix is architectural, not just a version bump. Work through these in priority order:
-
Update affected frameworks immediately. Pull the latest patched releases of the Vercel AI SDK (
aipackage), Google's agent tooling, and AWS agent libraries/managed agent configurations. Verify against the official advisories: the Vercel AI SDK changelog and GitHub security advisories, Google Cloud security bulletins, and AWS security bulletins. Do not assume your dependency lockfile updated — verify the deployed artifact. -
Enforce authorization at the tool layer. Every tool execution must independently validate: (a) that a legitimate, authenticated model turn authorized this call in this session, and (b) that the calling identity is permitted to invoke this tool with these arguments. Sign or token-bind model-emitted tool calls so forged tool-call payloads are rejected by construction.
-
Remove direct tool reachability. Audit every route, queue consumer, and callback that can reach a tool executor. If a tool endpoint is callable over HTTP without passing through the orchestration layer, that is the vulnerability — close it or gate it behind authentication and schema validation.
-
Apply least privilege to tools. Tools that read files, execute code, query databases, or call internal APIs should run with minimal credentials, in sandboxed contexts, with egress restricted to an allowlist. Assume the tool call will eventually be attacker-controlled; design for containment.
-
Add human-in-the-loop gates for high-impact actions. Irreversible or sensitive tool actions (writes, deletes, payments, credential access, external comms) require explicit approval regardless of what the model — or a forged call — requests.
-
Deploy sequence-integrity logging. Emit a correlated trace ID across model turn → tool call → tool result. Alert on any tool execution lacking a parent model-turn span. This converts the attack's defining characteristic into your detection signal.
-
Extend guardrails beyond the model. Move content filtering and policy enforcement to inspect tool inputs and outputs as well as prompts and completions. A guardrail that only watches the model is, per this disclosure, optional infrastructure for an attacker.
The following script audits a Node.js or Python deployment for affected framework packages and flags versions that should be reviewed against vendor advisories:
#!/bin/bash
# audit-agent-frameworks.sh — Verify AI agent framework versions in deployed apps
# Run from the application root or against a list of project directories.
TARGETS=("${@:-.}")
echo "=== AI Agent Framework Version Audit ==="
echo "Compare output against vendor advisories before marking compliant."
echo
for DIR in "${TARGETS[@]}"; do
echo "--- Scanning: $DIR ---"
# Node.js: Vercel AI SDK and related packages
if [ -f "$DIR/package.json" ]; then
echo "[Node] Dependencies in $DIR/package.json:"
grep -E '"(ai|@ai-sdk|@vercel|langchain|@langchain|llamaindex)[^"]*"\s*:' "$DIR/package.json" || echo " No known agent packages found."
fi
# Locked versions are what actually ship
if [ -f "$DIR/package-lock.json" ]; then
echo "[Node] Locked versions:"
grep -oE '"node_modules/(ai|@ai-sdk/[a-z-]+|@vercel/[a-z-]+)":' "$DIR/package-lock.json" | sort -u
fi
# Python: agent frameworks commonly used with AWS Bedrock / Google Vertex
if command -v pip >/dev/null 2>&1; then
echo "[Python] Installed agent-related packages:"
pip list 2>/dev/null | grep -iE 'google-adk|vertexai|langchain|llama-index|strands|bedrock|boto3|google-generativeai' || echo " None found in current environment."
fi
echo
done
echo "=== Next Steps ==="
echo "1. Compare each version to the latest patched release in the vendor advisory."
echo "2. For Vercel AI SDK: https://github.com/vercel/ai/security/advisories"
echo "3. For AWS: https://aws.amazon.com/security/security-bulletins/"
echo "4. For Google: https://cloud.google.com/support/bulletins"
echo "5. Rebuild and redeploy — updating package.json alone does not patch running services."
Verify after patching: instrument a test that attempts to invoke a tool endpoint directly with a forged tool-call payload. If the tool executes without an authenticated model-turn context, you are still vulnerable regardless of framework version — the flaw is in your wiring, not the library.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.