T03 · Remote Payload Retrieval and Execution
- Location
agentar_cli.mjs:795- Finding
Unsigned Remote Agent Content Is Installed into Trusted Workspaces
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill does what it says, but it can install unverified marketplace content into persistent agent workspaces and has concrete containment and credential-handling weaknesses.
Install only if you trust the CatchClaw registry and any agentar publishers you use. Prefer creating a new agent over overwriting the main workspace, avoid passing API keys on the command line, inspect downloaded agentars before use, and do not use custom names containing path separators or traversal like .. until this is fixed.
agentar_cli.mjs:795Unsigned Remote Agent Content Is Installed into Trusted Workspaces
agentar_cli.mjs:841Unvalidated Agent Name Allows Workspace Path Traversal
agentar_cli.mjs:69Unrestricted HTTP Redirects Permit Download Downgrade and Origin Substitution
agentar_cli.mjs:305API Keys Are Exposed Through Process Arguments and Weak File Permission Handling
Referenced artifact was not completely inspected
tall, export, or rollback command, you MUST verify the bundled CLI.** The CLI (`agentar_cli.mjs`) is bundled in this skill's directory — no download or copy is
Referenced artifact was not completely inspected
tall, export, or rollback command, you MUST verify the bundled CLI.** The CLI (`agentar_cli.mjs`) is bundled in this skill's directory — no download or copy is
Referenced artifact was not completely inspected
tall, export, or rollback command, you MUST verify the bundled CLI.** The CLI (`agentar_cli.mjs`) is bundled in this skill's directory — no download or copy is
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
];
const SKIP_FILES = ["AGENTS.md", "BOOTSTRAP.md"];
const EXPORT_SKIP_DIRS = [".git", ".openclaw", "__MACOSX", "memory"];
const SENSITIVE_PATTERNS = [".credentials", ".env", ".secret", ".key", ".pem"];
// ─── Config ──────────────────────────────────────────────────────────────────
The skill explicitly instructs the agent to run shell commands and rely on environment variables, but it declares no tool scope such as allowed-tools or permissions. This creates an authorization gap where a platform may permit broader command execution than intended, making a marketplace install/export skill more dangerous because it performs filesystem writes and can access local configuration paths.
The skill is designed to install agent archives into agent workspaces and can overwrite the main workspace, which is persistent modification of local agent state. In context this is the intended function, but it is still security-relevant because imported marketplace content can change SOUL.md, skills, and configuration with lasting effect across sessions.
**Source:** This skill is from the [CatchClaw skill repository](https://github.com/OpenAgentar/catchclaw).
An agentar is a distributable agent archive (ZIP) containing workspace files such as SOUL.md, skills, and other configuration. It can be installed as a new agent or used to overwrite an existing agent with a single command.
## Trigger Conditions
The trigger condition activates on any mention of "agentar" or "catchclaw," which can invoke a powerful skill even when the user is only discussing those terms. Because the skill can search, install, overwrite workspaces, export archives, and roll back state, overbroad activation increases the chance of unintended execution in the wrong conversational context.
The install commands write marketplace-provided content into persistent agent directories and optionally store API credentials in a skill-local credentials file. Because these changes survive the current session and may alter future agent behavior, the persistence risk is real even if the feature is expected and documented.
$CLI install <slug> --name <name> [--api-key <key>]
$CLI install <slug> --overwrite
Install an agentar from the marketplace.
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.
**Important:**
- Do NOT execute install until the user explicitly selects one of the above options
- Do NOT use "new" as a default without asking
- Do NOT use "overwrite" unless the user explicitly selects it
- If the user chooses "new" but doesn't specify a name, use the slug as the default name
The skill's stated purpose is marketplace search, install, and export of agentars, but the code also executes the local openclaw binary via subprocess to add agents, list agents, and generate enriched metadata. Spawning local executables is a materially broader capability than expected for a packaging/marketplace helper and is not declared in the manifest description.
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.
mode = "new";
} else {
const choice = await prompt(
`Install agentar "${slug}":\n [1] Create a new agent (default)\n [2] Overwrite main agent (~/.openclaw/workspace)\nChoice (1/2, default 1): `,
);
mode = choice === "2" ? "overwrite" : "new";
if (mode === "new" && !opts.name) {
The manifest describes a skill for searching, installing, and exporting agentars, but this file also exposes a rollback command that enumerates backups, deletes the main workspace, and restores prior workspace contents. Backup restoration is a distinct workspace-management capability not implied by marketplace search/install/export behavior.
When --api-key is supplied, the CLI writes the secret into workspace-local skills/.credentials and only prints the path afterward, without an explicit warning or opt-in about persistent plaintext storage. In this context, installed agentars and workspaces may later be inspected, copied, or packaged, so silently persisting an API key increases the chance of accidental disclosure.
The manifest explicitly states that an API key may be written to a local credentials file, but it does not indicate any protections, user warning, permission controls, or secure-storage mechanism. This creates a realistic risk of accidental credential exposure through weak filesystem permissions, backup/sync tools, shared environments, or users not realizing a sensitive secret is being persisted.
No suspicious patterns detected.