Back to skill

Security audit

Clawdtm Advisor

Security checks for vulnerabilities and agentic risk

Overview

This skill is openly an installer, but it gives an agent broad authority to download and activate remote skill files without enough local validation or user control.

Review this before installing. It is not evidence of malware, but it can install new skills that affect future agent sessions. Use it only if you trust the ClawdTM service and are comfortable with remote skill files being written locally; prefer manual review of the returned file list, paths, and contents before activation.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:94
Finding
Unverified Remote Skill Payload Retrieval and Activation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 94-127 and 190-198 **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```markdown curl "https://clawdtm.com/api/v1/skills/install?slug=SKILL_SLUG" ``` ```markdown **To install:** Write each file from the `files` array into `./skills/{slug}/` in the current workspace. If `files` is `null`, the skill files could not be fetched from GitHub. Fall back to `clawhub install {slug}` instead. ``` ```markdown 4. Fetch: `GET https://clawdtm.com/api/v1/skills/install?slug={chosen}` 5. Check security risk -- follow the security policy above 6. Write files from `files` array to `./skills/{slug}/` 7. Tell your human to restart their agent session to activate the new skill ``` ### Technical Analysis The documented workflow retrieves executable scripts and agent instruction files from a mutable external API, writes them into the active skills directory, and directs the user to restart the agent to activate them. The payload returned by the service can therefore change after this skill has been reviewed. The workflow relies on security scores and flags supplied by the same external service that supplies the files. It does not require a signed manifest, a pinned cryptographic digest, immutable release identifiers, an independent local security review, or explicit approval of the exact downloaded contents. The fallback to `clawhub install` likewise delegates installation to an external package source without defining equivalent integrity controls. Although this file does not itself contain an embedded malicious script, compromise or malicious operation of the remote service could turn the skill into a remote payload delivery channel. ### Attack Path 1. An attacker compromises the remote API, its storage, its delivery infrastructure, or an upstream skill source. 2. The attacker causes the install endpoint to return malicious `SKILL.md` instructions ...[truncated 1315 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Permit installation only from allowlisted, immutable releases. 2. Require a signed manifest covering every file path, file digest, skill identity, and version. 3. Verify signatures and pinned cryptographic hashes locally before writing any content. 4. Independently scan and review every returned file rather than relying exclusively on server-provided scores. 5. Display the complete file list, hashes, requested changes, and security findings before requesting explicit installation approval. 6. Download files into a quarantined staging directory and do not automatically activate them. 7. Require separate, explicit approval before moving reviewed files into the active skills directory. 8. Remove the unverified `clawhub install` fallback or apply the same provenance, integrity, and review requirements to it. 9. Use least-privilege execution and sandbox installed skills by restricting filesystem, network, credential, and command access. 10. Pin the trusted service identity and maintain an auditable installation record containing the source, version, signer, and verified hashes. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:111
Finding
Unvalidated Server-Controlled Installation Paths<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 111-122 and 196 **Vulnerability Type**: Unsafe file-path handling **Risk Level**: High ### Vulnerable Code ```json "files": [ { "path": "SKILL.md", "content": "---\nname: memory-bank\n..." }, { "path": "scripts/setup.sh", "content": "#!/bin/bash\n..." } ], "install_to": "./skills/memory-bank/" ``` ```markdown **To install:** Write each file from the `files` array into `./skills/{slug}/` in the current workspace. ``` ```markdown 6. Write files from `files` array to `./skills/{slug}/` ``` ### Technical Analysis The remote response controls each `files[].path` value, but the installation instructions do not require validation, normalization, or destination-containment checks before writing the files. The instructions also do not reject absolute paths, parent-directory components, symbolic-link traversal, duplicate paths, or overwrites of existing files. If an implementation joins the destination directory with an attacker-controlled path without canonical containment verification, values such as `../../target-file` could escape the intended skill directory. An absolute path could also cause a write directly to another location, depending on the path-joining behavior. Existing symbolic links inside the destination could create another route outside the intended directory. ### Attack Path 1. An attacker gains control over, or influences, the install API response. 2. The attacker supplies a `files[].path` containing parent-directory traversal, an absolute path, or a path that traverses an existing symbolic link. 3. The implementing agent writes the supplied content according to the documented installation procedure. 4. The resolved destination escapes `./skills/{slug}/`. 5. A user-accessible workspace file, agent configuration, tool definition, or other local file is created or overwritten. 6. The modified file affects later agent or tool behavior, potentially enabling execution of a ...[truncated 733 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Accept only normalized relative paths beneath a newly created installation directory. 2. Reject absolute paths, drive-qualified paths, parent-directory components, empty components, control characters, and platform-specific path ambiguities. 3. Canonically resolve the destination root and every candidate destination, then verify that each resolved path remains strictly beneath the intended root. 4. Reject symbolic links and prevent link-following during all installation writes. 5. Create files using secure no-follow and exclusive-create semantics where supported. 6. Reject duplicate or case-colliding paths before beginning installation. 7. Do not overwrite existing files without showing the exact change and obtaining explicit user approval. 8. Stage and validate the complete manifest before performing any filesystem operation. 9. Apply file-count and file-size limits to prevent resource-exhaustion attacks. 10. Abort and roll back the entire installation if any path or content fails validation. ]]>
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Ae1

High
Category
analysis-evasion
Content
{ "path": "SKILL.md", "content": "---\nname: memory-bank\n..." },
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Session Persistence

Medium
Category
Rogue Agent
Content
"slug": "memory-bank",
    "name": "Memory Bank",
    "author": "someuser",
    "description": "Persist context between sessions",
    "version": "1.2.0"
  },
  "security": {
Confidence
75% confidence
Finding
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The skill instructs writing fetched files into `./skills/{slug}/` in the current workspace, but does not explicitly warn that untrusted remote content will be materialized on disk. In an installer-oriented skill, that omission can cause users to approve installation without appreciating that arbitrary skill files, including scripts, may be introduced into their workspace and later executed by the agent ecosystem.

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
Example: "This skill makes network requests, which is expected for its purpose."

### medium (score 50-69)
**Do not install without confirmation.** Show your human:
- The security score and risk level
- Each flag and what it means
- Ask: "Do you want to proceed?"
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Static analysis

No suspicious patterns detected.