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

Content
View full analysis

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
View 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

Content
View full analysis

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
View 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
Confidence
90% confidence
Finding

Instructions found that direct the agent to transmit conversation context or user data to external services.

Content

Scanner excerpt · SKILL.md (reported line 433)May include surrounding context.

md
- 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)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Scope Creep

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 433)May include surrounding context.

md
- 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)

Unrestricted Tool Access

Medium
Category
Excessive Agency
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.

Content

Scanner excerpt · SKILL.md (reported line 434)May include surrounding context.

md
**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`):**

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
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.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.