Back to skill

Security audit

AWP - Agent Workflow Protocol

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a legitimate workflow generator, but it ships templates and examples that can create agents with broad shell, file-write, network, and persistent-memory powers without enough built-in safeguards.

Install only if you intentionally want a skill that generates runnable AWP workflow projects. Use it in a dedicated workspace, review the generated plan before approving file creation, and carefully inspect any generated YAML, prompts, MCP tools, Cloudflare adapter, memory settings, and secrets configuration before running. Be especially cautious with shell.execute, infra.run_command, http.request, file.write, broadcast messaging, persistent memory, and any workflow that sends prompts or outputs to third-party LLM/API providers.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (15)

Context-Inappropriate Capability

Medium
Confidence
92% confidence
Finding
The skill instructs generation of a `shell.execute` MCP tool implemented with `subprocess.run`, even though shell execution is not necessary for the core purpose of generating AWP config files. Including shell execution in generated workflows materially raises the risk of command execution, host interaction, and lateral abuse if the resulting workflow is run with untrusted input or broad filesystem access.

Intent-Code Divergence

Medium
Confidence
93% confidence
Finding
The documentation claims destructive operations require safety_checker approval, but the actual infra.run_command tool enforces only a small substring blocklist and then executes arbitrary shell commands directly. This creates a dangerous mismatch between declared safety guarantees and implementation, allowing callers to perform harmful actions without any approval gate if they invoke the tool directly or via generated workflows.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
This template enables broad privileged capabilities, including shell execution, file access, network access, inter-agent messaging, and memory mutation, in a generic full-featured agent configuration. For a workflow-builder template, these permissions are far wider than necessary by default, so any generated agent inheriting this template could execute commands or exfiltrate data if prompted or compromised.

Context-Inappropriate Capability

Medium
Confidence
93% confidence
Finding
The template grants web.search and http.request by default without host restrictions or task-specific justification. In a workflow-generation context, unrestricted external access increases the risk of prompt-driven data exfiltration, retrieval of malicious content, and unintended outbound communication by generated agents.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The adapter explicitly describes persistent storage of workflow state, daily logs, and long-term memory across KV, D1, and R2, but does not include any warning about retention, sensitivity, or privacy implications. In a workflow-generation skill, this is risky because users may unknowingly deploy systems that retain prompts, outputs, and potentially sensitive business or personal data indefinitely.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The file states that each agent call may use Workers AI or an external OpenAI-compatible API, but it does not warn that prompts, workflow state, memory, or agent outputs may be transmitted to third-party providers. Because this skill generates deployment-ready workflows, the omission can cause users to unintentionally export sensitive data outside their trust boundary.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The documentation explicitly exposes an arbitrary HTTP request capability but omits any safety guidance about outbound data transfer, SSRF-like access to internal services, credential leakage in headers, or contacting untrusted endpoints. In a workflow-builder skill, this is more dangerous because generated agents may automatically include and use this tool, causing users to create workflows that exfiltrate data or reach sensitive network resources without realizing the risk.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The file.write documentation describes overwrite and append behavior without warning that it can destroy, corrupt, or silently modify user data and generated project files. Because this skill generates complete workflows and related artifacts, consumers may rely on these docs to build agents that write broadly to disk, increasing the chance of unsafe path usage or destructive overwrites.

Missing User Warnings

High
Confidence
95% confidence
Finding
Documenting shell.execute as a generic command runner without strong warnings normalizes a highly dangerous primitive that can alter files, invoke network tools, execute downloaded code, or chain destructive commands. In the context of an agent workflow builder, this is especially risky because generated workflows may operationalize shell access for downstream agents, magnifying the chance of command injection or system-impacting misuse.

Missing User Warnings

Medium
Confidence
86% confidence
Finding
The documentation allows direct and broadcast messaging between agents but does not warn that messages may contain secrets, user data, or intermediate reasoning that should not be widely shared. In multi-agent workflows, especially ones generated automatically, broadcast and loosely controlled routing can easily propagate sensitive data to unintended recipients and expand the blast radius of prompt injection or data leakage.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
The memory tools permit persistent writes and LLM-based curation into long-term storage without warning that sensitive, regulated, or incorrect data may be retained and amplified over time. In a workflow-building skill, this is particularly dangerous because generated agents may automatically persist user content or derived summaries, creating long-lived privacy and compliance risks that are easy to overlook.

Vague Triggers

Medium
Confidence
91% confidence
Finding
The manifest broadly enables tools and related features without contextual restrictions, examples of prohibited use, or policy boundaries. This increases the chance that downstream agents built from the template will overuse dangerous capabilities such as shell, file write, messaging, and memory operations in response to ambiguous or adversarial prompts.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The template enables sensitive actions such as file.write, shell.execute, HTTP access, and automatic memory writes without any embedded disclosure, confirmation step, or operator warning. That combination can cause users to instantiate agents that silently modify files, persist potentially sensitive data, or communicate externally without realizing those behaviors are active by default.

Unvalidated Output Injection

High
Category
Output Handling
Content
"error": f"Blocked: command matches dangerous pattern '{pattern}'",
                  }
          try:
              result = subprocess.run(
                  command, shell=True, capture_output=True, text=True, timeout=timeout,
              )
              return {
Confidence
99% confidence
Finding
The tool passes attacker-controlled input into subprocess.run with shell=True, which enables shell metacharacter injection and arbitrary command execution. In a DevOps/infrastructure automation context, this is especially dangerous because the tool is intended to operate on deployment and operational systems, increasing the likelihood of host compromise, destructive changes, credential theft, or lateral movement.

Tool Parameter Abuse

High
Category
Tool Misuse
Content
"error": f"Blocked: command matches dangerous pattern '{pattern}'",
                  }
          try:
              result = subprocess.run(
                  command, shell=True, capture_output=True, text=True, timeout=timeout,
              )
              return {
Confidence
99% confidence
Finding
A generic command parameter is exposed directly to a shell, so the tool can be abused to run arbitrary OS commands well beyond its intended purpose. In this skill's context, where agents may automate CI/CD and infrastructure tasks, that abuse can lead to immediate system takeover, secrets disclosure, service disruption, or destructive operational changes.

Static analysis

Detected: suspicious.prompt_injection_instructions

Prompt-injection style instruction pattern detected.

Warn
Code
suspicious.prompt_injection_instructions
Location
adapters/cloudflare-dynamic-workers.md:53