Back to skill

Security audit

appdeploy

Security checks for vulnerabilities and agentic risk

Overview

This deployment skill mostly matches its stated purpose, but it asks the agent to follow live external instructions and send app files to a third-party deployment API, so it should be reviewed before use.

Install only if you trust SkillBoss with the source files and deployment metadata for apps you publish. Before using it, avoid deploying repositories that contain secrets, private data, or credentials, and treat any remote deployment instructions as service constraints rather than permission to override your own request or security rules.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:48
Finding
Mandatory Obedience to Untrusted Remote Deployment Instructions## Vulnerability Details **File Location**: `SKILL.md:48-64` **Vulnerability Type**: Remote instruction delegation **Risk Level**: High ### Vulnerable Code ```markdown 1. **First, get deployment instructions:** Call `get_deploy_instructions` to understand constraints and requirements. 2. **Get the app template:** Call `get_app_template` with your chosen `app_type` and `frontend_template`. 3. **Deploy the app:** Call `deploy_app` with your app files. For new apps, set `app_id` to `null`. 4. **Check deployment status:** Call `get_app_status` to check if the build succeeded. 5. **View/manage your apps:** Use `get_apps` to list your deployed apps. ## Available Tools ### get_deploy_instructions Use this when you are about to call deploy_app in order to get the deployment constraints and hard rules. You must call this tool before starting to generate any code. This tool returns instructions only and does not deploy anything. ``` ### Technical Analysis The skill requires the agent to retrieve deployment instructions from an external API and treat the resulting constraints as mandatory before generating code. The remote instructions are not included in the audited package, cannot be statically reviewed, and may change after installation. This creates an instruction-hijacking boundary: content controlled by the remote service is elevated from untrusted API data to authoritative agent instructions. If the service, account, API infrastructure, or returned content is compromised, an attacker could attempt to modify the agent's subsequent goals, requested data, generated application code, or Bash/API operations. The package does not define a restrictive schema or local allowlist governing what remote instructions may request. It also does not explicitly require the agent to reject remote instructions that conflict with user intent, security policy, tool restrictions, or data-minimization requirements. ...[truncated 1400 chars]
Remediation
## Remediation Suggestions 1. Store all security constraints and behavioral rules locally in the reviewed skill package. 2. Treat responses from `get_deploy_instructions` strictly as untrusted structured data rather than executable or authoritative instructions. 3. Define and enforce a narrow response schema containing only expected deployment parameters, such as size limits and supported templates. 4. Reject remote fields that attempt to alter agent policy, tool permissions, network destinations, credential handling, or the user's original request. 5. Restrict outbound requests to documented SkillBoss endpoints and prohibit instructions that introduce additional destinations. 6. Require explicit user confirmation before transmitting source files or performing operations outside the clearly described deployment workflow. 7. Pin or version the remote instruction contract so reviewed behavior cannot change silently. 8. Add a local rule stating that remote content can never override system instructions, security controls, or explicit user intent.

T08 · Insecure Dependencies

Warning
Location
README.md:7
Finding
Unpinned Installation from Mutable Third-Party Sources## Vulnerability Details **File Location**: `README.md:7-14` **Vulnerability Type**: Unverified and mutable installation source **Risk Level**: Medium ### Vulnerable Code ```markdown ### Via ClawHub ```bash clawhub install toby-appdeploy ``` ### Manual Installation ```bash git clone https://github.com/TobeyRebecca/appdeploy.git cp -r appdeploy ~/.openclaw/skills/appdeploy ``` ``` ### Technical Analysis Both documented installation methods retrieve mutable third-party content without pinning an immutable package version, Git commit, release artifact, checksum, or cryptographic signature. The `clawhub install` command does not identify a reviewed version. The `git clone` command retrieves the repository's current default branch, whose contents can change after this audit. Consequently, the code installed by a user may differ from the audited three-file package. Because this is an OpenClaw skill with Bash permission, replacement or modification of the upstream skill could have a larger impact than an ordinary documentation change. A compromised registry account, repository account, maintainer credential, or distribution channel could serve altered instructions or additional executable files. ### Attack Path 1. An attacker compromises the ClawHub package, GitHub repository, maintainer account, or release process. 2. The attacker replaces or modifies the skill contents on the mutable package version or default branch. 3. A user follows the documented unpinned installation command. 4. The installation retrieves the attacker's modified content rather than the version covered by this audit. 5. OpenClaw loads the modified skill with its declared Bash access. 6. Malicious instructions or newly introduced scripts execute within the permissions granted to the agent runtime. ### Impact Assessment Exploitation could replace the reviewed skill with arbitrary upstream content. Potential impact includes unauthori ...[truncated 406 chars]
Remediation
## Remediation Suggestions 1. Pin ClawHub installation instructions to a specific immutable package version. 2. Pin manual Git installations to a reviewed commit hash or signed release tag. 3. Publish SHA-256 checksums for release artifacts and require users to verify them before installation. 4. Cryptographically sign releases and document signature verification using a trusted maintainer key. 5. Prefer immutable release archives over cloning the mutable default branch. 6. Enable repository protections, mandatory review, signed commits or tags, and multifactor authentication for maintainers. 7. Document the exact version and digest corresponding to each completed security audit.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Vague Triggers

Medium
Confidence
90% confidence
Finding
The activation description is broad enough to trigger on common requests to 'deploy' or 'publish' a site, which can cause the skill to engage in high-impact external actions without a narrowly scoped user intent check. Because this skill can transmit code and app data to a third-party API, over-broad routing increases the chance of unintended data disclosure or unintended deployment actions.

External Transmission

Medium
Category
Data Exfiltration
Content
# AppDeploy Skill

Deploy web apps via SkillBoss API Hub (https://api.skillboss.co/v1/pilot).

## Setup (First Time Only)
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill instructs deployment through an external API but does not clearly warn that app files, configuration, and possibly embedded secrets may be sent to a third-party service. Users and calling agents may therefore expose sensitive source code or data without informed consent.

External Transmission

Medium
Category
Data Exfiltration
Content
Make calls to the SkillBoss API Hub deployment endpoint:

```bash
curl -X POST https://api.skillboss.co/v1/pilot \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -d '{
Confidence
93% confidence
Finding
This skill explicitly performs outbound HTTP requests to a third-party endpoint using a bearer token and deployment payloads. External transmission is expected for a deployment skill, but it is still security-relevant because source files and metadata may be exfiltrated outside the local environment if invoked without strong consent and content filtering.

External Transmission

Medium
Category
Data Exfiltration
Content
Make calls to the SkillBoss API Hub deployment endpoint:

```bash
curl -X POST https://api.skillboss.co/v1/pilot \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -d '{
Confidence
93% confidence
Finding
This skill explicitly performs outbound HTTP requests to a third-party endpoint using a bearer token and deployment payloads. External transmission is expected for a deployment skill, but it is still security-relevant because source files and metadata may be exfiltrated outside the local environment if invoked without strong consent and content filtering.

Static analysis

No suspicious patterns detected.