T08 · Insecure Dependencies
- Location
manager.sh:68- Finding
Unpinned Remote Agent Skills Are Installed into an Automatically Loaded Directory
- Content
View full analysis
&1 | head -3 fi cp -r "$SOURCE_DIR/skills/$skill" "$SKILLS_DIR/" ``` `skill-installer.sh:184-192`: ```bash # Clone if source doesn't exist if [[ ! -d "$SOURCE_DIR" ]]; then echo "" echo -e "${CYAN}克隆源仓库...${NC}" # 使用安全的 TLS 连接克隆 GitHub(不使用 GIT_SSL_NO_VERIFY) git clone --depth 1 https://github.com/pskoett/pskoett-ai-skills.git "$SOURCE_DIR" 2>&1 | head -5 fi # Copy skill cp -r "$skill_path" "$dest_path" ``` `SKILL.md:61-70`: ```bash # 克隆源仓库 git clone https://github.com/pskoett/pskoett-ai-skills.git /tmp/pskoett-ai-skills # 手动安装技能 cp -r /tmp/pskoett-ai-skills/skills/simplify-and-harden ~/.openclaw/skills/ cp -r /tmp/pskoett-ai-skills/skills/plan-interview ~/.openclaw/skills/ cp -r /tmp/pskoett-ai-skills/skills/intent-framed-agent ~/.openclaw/skills/ cp -r /tmp/pskoett-ai-skills/skills/context-surfing ~/.openclaw/skills/ cp -r /tmp/pskoett-ai-skills/skills/self-improvement ~/.openclaw/skills/ ``` ### Technical Analysis The installation flow clones the current head of a third-party GitHub repository without pinning an audited commit, verifying a signed release, or checking file hashes. The resulting content is copied directly into `~/.openclaw/skills`, which the project documentation states is automatically loaded by OpenClaw. TLS protects the network connection but does not ensure that the repository's current contents are the same contents that were previously reviewed. Repository-owner compromise, malicious upstream changes, or unauthorized release modificatio ...[truncated 1708 chars]- Remediation
View remediation
