Back to skill

Security audit

rtk CLI proxy

Security checks for vulnerabilities and agentic risk

Overview

The skill coherently reduces command-output noise, with disclosed recovery steps that install external software and retain local files.

Review the recovery commands before running them: they execute an external installer and build changing upstream code. Prefer an existing trusted toolchain and a pinned RTK revision. Expect persistent files under /config and /usr/local/bin, and keep secrets out of summarized output.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Output HandlingUnvalidated Output Injection, Cross-Context Output, Unbounded Output
  • 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 (2)

The restore workflow executes a downloaded installer without warning about third-party code execution or persistent toolchain changes.

Medium
Category
Output Handling
Confidence
90% confidence
Finding

The restore procedure conditionally runs a remote installer with automatic acceptance and persistent toolchain directories, without an explicit approval step. This is a legitimate recovery task, not evidence of malicious intent, but an agent following it could execute compromised installer content with its own filesystem and credential access. The vulnerability is the unreviewed execution boundary, not merely the absence of a warning.

Content

No source excerpt is available for this finding.

External Script Fetching

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The curl-to-shell pipeline executes the current response from sh.rustup.rs without first reviewing or independently verifying it. HTTPS and the legitimate Rust installer domain reduce the likelihood of interception or deception, but a compromised distribution endpoint could still supply arbitrary code that runs with the invoking user's privileges. Execution is conditional on Cargo being absent, limiting exposure; this overlaps with the restore-workflow finding rather than representing a separate attack chain.

Content

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

sh
export CARGO_HOME=/config/.cargo RUSTUP_HOME=/config/.rustup
export PATH="$CARGO_HOME/bin:$PATH"
[ -x "$CARGO_HOME/bin/cargo" ] || { curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal; }
git clone --depth 1 --branch develop https://github.com/rtk-ai/rtk.git /tmp/rtk-src
cd /tmp/rtk-src && cargo build --release     # ~40 min on this box
cp target/release/rtk /usr/local/bin/rtk && cp target/release/rtk /config/clawd/bin/rtk