Back to skill

Security audit

Agent Deployment

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent agent-deployment purpose, but it tells users to run unverified remote installation code and handle Copilot/gateway credentials without enough safety boundaries.

Review this skill before installing. Use safer install steps where possible: download and inspect installers before running them, pin the OpenClaw npm version, avoid sharing Copilot tokens or gateway details, and keep ~/.openclaw/openclaw.json out of screenshots, logs, and repositories.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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:17
Finding
Remote Installation Script Executed Without Integrity Verification## Vulnerability Details **File Location**: `SKILL.md`, line 17 **Vulnerability Type**: Remote code retrieval and immediate shell execution **Risk Level**: High **Complete Code Snippet**: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash ``` ### Technical Analysis The deployment instructions pipe content downloaded from an external URL directly into Bash. This creates a remote code-execution channel because no local review, cryptographic signature validation, or checksum verification occurs before execution. The URL refers to the official `nvm-sh/nvm` GitHub repository and uses a version tag, which reduces accidental version drift. However, a Git tag does not provide the same assurance as verification against a trusted cryptographic digest or signature. If the repository, referenced tag, hosting account, delivery infrastructure, or retrieved content were compromised, the effective script could execute arbitrary commands before the user could inspect it. Installing NVM is relevant to the declared deployment workflow, but immediate `curl | bash` execution is not the minimum-risk method required to perform that installation. ### Attack Path 1. An attacker compromises the upstream repository, maintainer account, referenced release content, or another component of the delivery chain. 2. The remote `install.sh` content is replaced or modified to include an attacker-controlled payload. 3. A user follows the documented installation command. 4. `curl` retrieves the modified content and streams it directly to Bash. 5. Bash executes the payload with all permissions available to the invoking user. ### Impact Assessment Successful exploitation provides arbitrary command execution under the account running the deployment command. The payload could read or alter files accessible to that account, modify shell configuration, steal local credentials or tokens, install additional user-level component ...[truncated 274 chars]
Remediation
## Remediation Suggestions 1. Download the installer to a local file instead of piping it directly into a shell. 2. Publish and verify a trusted SHA-256 or stronger cryptographic digest before execution. 3. Prefer a signed release artifact and validate its signature against a documented maintainer key. 4. Review the downloaded script before running it. 5. Execute the installer as an unprivileged user and avoid adding `sudo`. 6. Fail safely by enabling strict download options and explicitly checking verification results. Example hardened workflow: ```bash curl --fail --show-error --location \ --output /tmp/nvm-install.sh \ https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh echo '<TRUSTED_SHA256> /tmp/nvm-install.sh' | sha256sum --check - less /tmp/nvm-install.sh bash /tmp/nvm-install.sh rm -f /tmp/nvm-install.sh ``` The expected digest must be obtained through a trusted, independently authenticated source and must not be fetched from the same unverified channel at execution time.

T08 · Insecure Dependencies

Warning
Location
SKILL.md:21
Finding
Unpinned Global npm Package Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 21–22 **Vulnerability Type**: Mutable third-party dependency installation **Risk Level**: Medium **Complete Code Snippet**: ```bash # 2. 安装 OpenClaw npm install -g openclaw ``` ### Technical Analysis The installation command does not specify a package version, so npm resolves the package version associated with the registry's current default distribution tag. The installed code can therefore change over time without any corresponding modification to the reviewed skill. npm installation may also execute package lifecycle scripts. Consequently, a compromised package release, maintainer account, or registry publishing workflow could result in attacker-controlled code running during installation. Global installation additionally exposes the resulting executable throughout the user's NVM-managed environment. Installing OpenClaw is necessary for the declared functionality, but using an unpinned package version exceeds the minimum supply-chain trust necessary for a reproducible deployment. ### Attack Path 1. An attacker compromises the npm package, a package maintainer account, or the package publication process. 2. A malicious release is published and assigned to the default distribution tag. 3. A user runs `npm install -g openclaw`. 4. npm resolves and downloads the attacker-controlled release. 5. Any included lifecycle scripts execute with the invoking user's permissions, and the compromised executable becomes globally available in that user's NVM environment. 6. The malicious package can act during installation or when the user subsequently invokes `openclaw`. ### Impact Assessment Exploitation could provide arbitrary code execution under the invoking user's account. An attacker could access user-readable files and credentials, alter the OpenClaw configuration or executable, tamper with deployment behavior, and steal authentication material available to the ...[truncated 246 chars]
Remediation
## Remediation Suggestions 1. Pin OpenClaw to a specific reviewed version, for example: ```bash npm install -g openclaw@<REVIEWED_VERSION> ``` 2. Document the expected package version and integrity metadata in the deployment instructions. 3. Verify package provenance, publisher identity, and release signatures or attestations where available. 4. Review package lifecycle scripts before installation. 5. Prefer a project-local dependency with a committed lockfile when global command availability is not strictly required. 6. Perform installation as an unprivileged user and do not add `sudo`. 7. Establish an explicit upgrade process so newer versions are reviewed before the pinned version is changed.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Chaining Abuse

High
Category
Tool Misuse
Content
### 安装步骤
```bash
# 1. 安装 nvm + Node.js(绕过 sudo)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 24
Confidence
97% confidence
Finding
The explicit use of a shell pipe into bash creates a code-execution chain where untrusted remote content is immediately interpreted by the shell. In a deployment skill aimed at setting up agent infrastructure, this is especially dangerous because users are likely to copy-paste commands verbatim, making compromise easy and scalable.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The skill includes authentication flow details, local browser access, and explicitly references a token placeholder without any warning about protecting tokens, configs, or avoiding accidental disclosure in logs/screenshots. In a deployment skill, this omission increases the chance that operators mishandle sensitive Copilot credentials or expose local gateway access details during setup or troubleshooting.

External Script Fetching

Low
Category
Supply Chain
Content
### 安装步骤
```bash
# 1. 安装 nvm + Node.js(绕过 sudo)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.nvm/nvm.sh
nvm install 24
Confidence
95% confidence
Finding
The instruction fetches and executes a remote script directly from the network using curl piped to bash, which prevents inspection before execution and makes the installation path dependent on the integrity of the remote source and transport. If the upstream repository, release reference, or delivery path is compromised, users would immediately execute attacker-controlled code on their system.

Static analysis

No suspicious patterns detected.