skill-installer
Fail
Audited by Gen Agent Trust Hub on Sep 15, 2026
Risk Level: HIGHPRIVILEGE_ESCALATIONEXTERNAL_DOWNLOADSREMOTE_CODE_EXECUTIONCOMMAND_EXECUTIONINDIRECT_PROMPT_INJECTIONDYNAMIC_EXECUTION
Full Analysis
- [PRIVILEGE_ESCALATION]: The
install_skillfunction inscripts/install_skill.pyis vulnerable to path traversal. It uses askill_namederived directly from thenamefield in a skill'sSKILL.mdfrontmatter to construct the installation path (e.g.,~/.claude/skills/{name}). The lack of validation for directory traversal sequences like..allows a maliciously named skill to be installed into arbitrary sensitive locations, such as~/.ssh, potentially overwriting critical system or identity files. - [EXTERNAL_DOWNLOADS]: The skill includes functionality to fetch and install skills from a remote catalog API. The
download_from_catalogfunction inscripts/install_skill.pyuses therequestslibrary to download file content and write it directly to the local filesystem, introducing significant risk from untrusted remote sources. - [REMOTE_CODE_EXECUTION]: By downloading external skill code and placing it in active skill directories for various AI harnesses, the installer facilitates the remote execution of untrusted code. The download mechanism lacks robust integrity checks or signature verification for the incoming content.
- [COMMAND_EXECUTION]: The script performs high-impact file system operations, including recursive directory copying (
shutil.copytree) and deletion (shutil.rmtree). These operations target persistent configuration directories for various AI agent harnesses (e.g.,~/.claude,~/.config/goose). - [INDIRECT_PROMPT_INJECTION]: The skill acts as a processing engine for untrusted external skill data, creating a vulnerability surface where a malicious skill can leverage the installer's capabilities for unauthorized writes.
- Ingestion points: Frontmatter parsing of
SKILL.mdin theget_skill_namefunction withinscripts/install_skill.py. - Boundary markers: Absent; the script trusts the
namefield in the frontmatter without verification. - Capability inventory: Recursive file writing, directory removal, and external network requests via
requests.get. - Sanitization: Absent; no path validation or sanitization is performed on the extracted
skill_nameto prevent traversal. - [DYNAMIC_EXECUTION]: The script dynamically modifies the Python search path (
sys.path) at runtime to import shared modules (agentskills_config) from a parent directory structure, enabling the execution of code from outside the skill's own package scope.
Recommendations
- AI detected serious security threats
Audit Metadata