skill-porter
Fail
Audited by Gen Agent Trust Hub on Feb 12, 2026
Risk Level: HIGHCOMMAND_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
The skill skill-porter is designed to convert skill definitions between Claude Code and Gemini CLI formats. It processes various text-based configuration files (Markdown, JSON, TOML) and orchestrates file system operations.
HIGH Severity Findings:
- Command Injection (src/cli.js, src/optional-features/fork-setup.js, src/optional-features/pr-generator.js): The skill extensively uses
child_process.execSyncto execute shell commands. Several instances pass user-controlled input directly or indirectly to these commands without robust sanitization against shell metacharacters, creating a significant command injection vulnerability:src/optional-features/fork-setup.js:execSync(git clone ${repoUrl} ${forkPath}, ...): TherepoUrlandforkPathvariables are derived from user input (options.url,options.location). If these contain shell metacharacters (e.g.,$(command),;,&&), arbitrary commands could be executed.forkPathispath.resolve(options.location), which normalizes the path but does not prevent shell injection within the string itself.execSync(cp -r "${source}" "${destination}", ...): Whilesourceanddestinationare quoted, sophisticated attackers might still find ways to inject commands, especially if the input itself contains quoted commands or newline characters.
src/optional-features/pr-generator.js:execSync(git push -u ${remote} ${this.branchName}, ...): Theremotevariable is user-controlled (options.remote). If it contains shell metacharacters, it could lead to arbitrary command execution.
- Other
gitandghcommands are generally safer due to fixed arguments or proper escaping of constructed strings (e.g., commit messages, PR titles/bodies).
LOW Severity Findings:
- Unverifiable Dependencies (package.json, src/optional-features/pr-generator.js):
- The skill's direct Node.js dependencies (
js-yaml,commander,chalk) are reputable and widely used. However, thePRGeneratorfeature explicitly relies on thegh(GitHub CLI) executable being installed and authenticated on the user's system. Whileghis a trusted tool, the skill does not manage its installation, making it an external, unverified binary dependency from the perspective of the skill's own package management. The skill does check for its presence and authentication status.
- The skill's direct Node.js dependencies (
- Tool Restriction Incompleteness (src/converters/claude-to-gemini.js, src/converters/gemini-to-claude.js): The conversion logic for
allowed-toolsandexcludeToolsrelies on a hardcoded list ofallTools. If new tools are introduced to either Claude Code or Gemini CLI platforms, this list could become outdated. This might lead to converted skills having unintended permissions (either granting more access than intended by not excluding a new dangerous tool, or restricting too much by not allowing a new benign tool).
INFO Severity Findings:
- Indirect Prompt Injection (General): As a skill conversion tool,
skill-porterprocesses and generates skill definitions. If a source skill contains malicious prompt injection attempts, the converted skill will likely propagate these attempts into its output. The skill itself is not directly vulnerable to prompt injection in its own execution, but it acts as a conduit for such content. Users should be aware that converting a malicious skill will result in another malicious skill.
No issues were found related to: Obfuscation (beyond standard encoding), Privilege Escalation (operations are user-level), Persistence Mechanisms (beyond intended skill installation), or Time-Delayed / Conditional Attacks.
Recommendations
- AI detected serious security threats
Audit Metadata