Back to skill

Security audit

Repomix

Security checks for vulnerabilities and agentic risk

Overview

This skill is coherent for repository packing, but it should be reviewed because it runs mutable npm code and can bundle whole repositories without strong scoping or warnings.

Install only if you are comfortable with an npm-based tool that is currently referenced through a mutable latest version. Prefer pinning a reviewed Repomix version, running it in a contained environment, narrowing scope with include or ignore patterns, and reviewing generated output for secrets before sharing it.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:49
Finding

Mutable npm Package Is Downloaded and Executed Without Version Pinning

Content
View full analysis
--output /tmp/-analysis.xml ``` Always output to a temporary directory (`/tmp` on Unix, `%TEMP%` on Windows) for remote repositories to avoid polluting the user's working directory. ### Pack a Local Directory ```bash npx repomix@latest [directory] --output /tmp/-analysis.xml ``` ``` The same mutable package reference is repeated later: ```bash # Remote repository (always output to /tmp) npx repomix@latest --remote yamadashy/repomix --output /tmp/repomix-analysis.xml # Large remote repo with compression npx repomix@latest --remote facebook/react --compress --output /tmp/react-analysis.xml # Local directory npx repomix@latest ./src --output /tmp/src-analysis.xml # Specific file types only npx repomix@latest --include "**/*.{ts,tsx,js,jsx}" --output /tmp/filtered-analysis.xml ``` The installation metadata also omits a fixed version: ```yaml install: - kind: node package: repomix bins: - repomix label: "Install Repomix CLI (npm)" ``` ### Technical Analysis The Skill instructs the agent to invoke `npx repomix@latest`. The `latest` npm distribution tag is mutable and may resolve to a different package version each time the command is run. If the requested package is not already available locally, `npx` can retrieve it from the configured npm registry and execute its package code, including installation lifecycle behavior. As a result, the effective executable payload is not fixed to the version reviewed during this audit. A future compromised or malicious release could therefore introduce arbitrary behavior without any modification to `SKILL.m ...[truncated 1955 chars]
Remediation
View remediation
--output /tmp/-analysis.xml ``` 2. Pin the package version in the Skill installation metadata rather than declaring only `repomix`. 3. Use a lockfile and npm integrity hashes where the surrounding Skill platform supports them. Install dependencies with deterministic mechanisms such as `npm ci`. 4. Review the selected package version and its dependency tree before updating it. Treat upgrades as security-relevant changes requiring a new audit. 5. Configure npm to use an approved registry and retain registry integrity verification. In higher-security environments, use an internal mirror containing only reviewed artifacts. 6. Disable unnecessary npm lifecycle scripts where compatible with the package, such as by using `--ignore-scripts`, after confirming that doing so does not break legitimate functionality. 7. Execute repository-packaging tools with least privilege in an isolated environment. Restrict access to unrelated files, sensitive environment variables, credentials, and outbound network destinations. 8. Do not rely solely on Repomix's automatic secret filtering. Explicitly limit included paths and inspect generated output before transmitting or sharing it. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (9)

Rp1

Medium
Category
MCP Rug Pull
Confidence
87% confidence
Finding

The skill metadata declares npx as a required binary and installs repomix from npm without pinning a specific version. Unpinned package execution allows whatever version is current at runtime to be fetched and executed, creating a supply-chain risk if the package is compromised or a breaking/malicious release is published.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill encourages packing entire repositories into a single output file and supports remote GitHub fetching, but it does not clearly warn users about data exposure, local artifact creation, or network transfer. In this context, the omission is meaningful because bundling source into one file can concentrate proprietary or sensitive code and make accidental exfiltration or mishandling more likely.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The invocation examples are broad and overlap heavily with ordinary repository-help requests such as 'analyze this repo' or 'explore this codebase.' Loose activation boundaries can cause the agent to invoke this skill in situations where the user did not intend repository packing or remote fetching, increasing the chance of unnecessary data collection, network access, or oversized artifact generation.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.