Back to skill

Security audit

Workflow Tools

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly transparent about its workflow-analysis purpose, but it can scan arbitrary readable paths and delegate work to any installed skill, which needs review before installation.

Install only if you are comfortable with explicit commands reading any path your agent can access and with `/wt subworkflow` being able to invoke other installed skills. Use it in a constrained workspace, avoid sensitive directories, review installed skills before using subworkflows, and prefer environments where broad delegation is disabled or confirmed by the user.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:437
Finding
Unrestricted Filesystem Scanning Outside the Declared Workspace## Vulnerability Details **File Location**: `SKILL.md`, lines 437-443 **Vulnerability Type**: Unrestricted filesystem access **Risk Level**: Medium ### Vulnerable Code Snippet ```markdown **⚠️ Path scanning (`/wt loops`):** The `/wt loops` command accepts an arbitrary directory path argument. It will recursively scan the specified directory for loop patterns (TODO, FIXME, etc.). This is a read-only operation but can scan any directory you have filesystem access to. The skill does NOT restrict which paths can be scanned — use caution with sensitive directories. Consider using `--exclude` to skip sensitive paths. ``` ### Technical Analysis The `/wt loops` interface accepts an arbitrary directory and recursively reads files using the permissions of the hosting agent. The documentation explicitly states that no path restrictions are enforced. This behavior exceeds the paths declared in the skill metadata, which only identifies configuration files and output directories. Read-only access still presents a confidentiality risk because sensitive file paths and matching file contents can be included in generated reports under `output/loops/`. User-provided exclusions are not a security boundary. They depend on the caller correctly identifying sensitive locations and do not protect against malicious instructions, path traversal, absolute paths, or symbolic links resolving outside the intended workspace. ### Attack Path 1. An attacker supplies or influences a workflow request containing `/wt loops` with an absolute path, traversal path, or symbolic-link-backed directory. 2. The skill recursively scans that directory using the agent's filesystem permissions. 3. Files containing recognized markers such as `TODO`, `FIXME`, `HACK`, or attacker-selected custom patterns are identified. 4. Matching file paths and content are returned to the session or persisted under `output/loops/`. 5. The attacker obtains information from files outside the legitimate workflow scope t ...[truncated 459 chars]
Remediation
## Remediation Suggestions 1. Restrict scanning to the current workspace by default. 2. Resolve every supplied path to its canonical absolute path before access and verify that it remains beneath an approved root. 3. Reject `..` traversal, absolute paths outside approved roots, and symbolic links that escape the workspace. 4. Maintain a default denylist for sensitive paths such as credential stores, SSH directories, agent state, version-control secrets, and system configuration. 5. Require explicit interactive confirmation before reading any location outside the workspace. 6. Apply limits for recursion depth, file count, file size, and scan duration to reduce unintended exposure and denial-of-service risk. 7. Redact sensitive values and minimize file content written to reports. 8. Update the declared permission metadata so that the effective filesystem access is transparent and enforceable.

T05 · Unauthorized Access and Privilege Escalation

Error
Location
SKILL.md:445
Finding
Unrestricted Delegation to Arbitrary Installed Skills## Vulnerability Details **File Location**: `SKILL.md`, lines 445-453 **Vulnerability Type**: Unbounded permission delegation **Risk Level**: High ### Vulnerable Code Snippet ```markdown **Subworkflow spawning (`/wt subworkflow`):** The `/wt subworkflow` command spawns other ClawHub skills installed in your environment. - **Scope**: Can invoke any skill installed via `openclaw install` - **Permissions**: Spawned skills execute with their own declared permissions (not elevated) - **Categories**: Typically `research-*`, `generate-*`, `validate-*`, `transform-*` skills - **Risk**: The effective permission footprint is the union of this skill plus any spawned skills Review your installed skills (`openclaw list`) to understand the combined permission scope when using subworkflow spawning. ``` ### Technical Analysis The `/wt subworkflow` command can invoke any installed skill rather than a narrowly defined, reviewed allowlist. Although a spawned skill does not receive privileges beyond its own declaration, workflow-tools acts as a delegation mechanism through which a task can access the capabilities of unrelated installed skills. Consequently, the effective permission scope is not limited to workflow analysis. It can expand to filesystem writes, network access, command execution, external service access, or other operations offered by the selected skill. Relying on users to inspect `openclaw list` does not enforce authorization and does not prevent malicious task descriptions or unsafe `--skill` selections from triggering a privileged capability. ### Attack Path 1. A more privileged ClawHub skill is already installed in the environment. 2. An attacker controls or influences the task description or the `/wt subworkflow --skill` argument. 3. The attacker selects the privileged installed skill or crafts a task that causes workflow-tools to select it. 4. Workflow-tools spawns that skill as a subworkflow. 5. The delegated skill runs with its own declared permiss ...[truncated 960 chars]
Remediation
## Remediation Suggestions 1. Replace unrestricted skill selection with an explicit allowlist of reviewed skill identifiers and versions. 2. Limit automatic selection to the documented low-risk categories and verify category membership cryptographically or through trusted registry metadata rather than name prefixes. 3. Resolve and display the selected skill's complete permission manifest before execution. 4. Require explicit user confirmation whenever the delegated skill has network, shell, credential, broad filesystem, deployment, or persistence capabilities. 5. Enforce capability intersection so a child skill cannot use permissions that workflow-tools was not authorized to delegate. 6. Run subworkflows in isolated sandboxes with separate filesystem roots, restricted network policies, resource limits, and minimal credentials. 7. Validate and constrain attacker-controlled task descriptions and `--skill` arguments. 8. Pin delegated skills to reviewed versions and verify package provenance and integrity before invocation. 9. Record the selected skill, version, permissions, initiating request, and outputs in an audit log. 10. Disable background execution for privileged subworkflows unless a separate authorization policy explicitly permits it.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (7)

Exfiltration Commands

High
Category
Prompt Injection
Content
- Network resources or external APIs

**What this skill does NOT do:**
- Send data to external services
- Execute arbitrary code
- Modify source files (analysis is read-only)
Confidence
90% confidence
Finding
Instructions found that direct the agent to transmit conversation context or user data to external services.

Description-Behavior Mismatch

Medium
Confidence
90% confidence
Finding
The manifest description says the skill is for loop detection, parallel decisions, and file size analysis, but omits the documented subworkflow-spawning behavior. This is a transparency and least-surprise failure that can cause operators to underestimate the skill's orchestration capabilities during review or installation.

Scope Creep

Medium
Confidence
97% confidence
Finding
The documentation explicitly states that `/wt loops` and `/wt mce` can read arbitrary user-specified paths outside the manifest-declared config/workspace scope. In an agent environment, this creates a scope-expansion risk: a caller can direct the skill to inspect sensitive local files or directories that users may not expect this skill to access.

External Transmission

Medium
Category
Data Exfiltration
Content
- Network resources or external APIs

**What this skill does NOT do:**
- Send data to external services
- Execute arbitrary code
- Modify source files (analysis is read-only)
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Unrestricted Tool Access

Medium
Category
Excessive Agency
Content
**What this skill does NOT do:**
- Send data to external services
- Execute arbitrary code
- Modify source files (analysis is read-only)

**⚠️ Path scanning (`/wt loops`):**
Confidence
80% confidence
Finding
Skill grants unrestricted tool access without appropriate constraints. An agent with unfettered tool access can perform arbitrary actions including file modification, network requests, and code execution.

Context-Inappropriate Capability

Medium
Confidence
95% confidence
Finding
The subworkflow feature can invoke any installed skill, making this skill an orchestration entry point to a much broader effective permission set than its core workflow-analysis purpose suggests. Even if spawned skills keep their own permissions, this creates capability amplification and may let a user reach sensitive behaviors indirectly through a seemingly low-risk skill.

Natural-Language Policy Violations

Low
Confidence
89% confidence
Finding
The title and trigger description include Chinese text while the rest of the document is primarily in English, but the skill does not state that multilingual output is optional or user-selectable. This can create an implicit language/locale constraint or inconsistent user experience without explicit opt-in.

Static analysis

No suspicious patterns detected.