Back to skill

Security audit

MCPorter MCP CLI

Security checks for vulnerabilities and agentic risk

Overview

This skill is a concise, disclosed helper for using the mcporter CLI, with no hidden payload in the submitted artifact.

Install only if you trust the mcporter npm package and intend to let agents use it to call MCP servers. Review commands before running them, especially auth, config, daemon, stdio, and calls to authenticated or remote servers.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:5
Finding
Unpinned Executable npm Dependency## Vulnerability Details **File Location**: `SKILL.md`, line 5 **Vulnerability Type**: Unpinned third-party executable dependency **Risk Level**: Medium ### Vulnerable Code ```yaml metadata: {"clawdbot":{"emoji":"📦","requires":{"bins":["mcporter"]},"install":[{"id":"node","kind":"node","package":"mcporter","bins":["mcporter"],"label":"Install mcporter (node)"}]}} ``` ### Technical Analysis The installation metadata identifies the npm package `mcporter` without specifying an immutable version, package integrity hash, or other verifiable artifact reference. Consequently, installation can resolve a mutable package release that was not necessarily the version reviewed when this Skill was audited. npm packages can execute code through lifecycle scripts during installation, and the installed `mcporter` binary subsequently executes with the privileges of the invoking user. If the package, publisher account, registry resolution process, or a future release is compromised, malicious code could run during installation or when the CLI is invoked. The audited file does not itself contain a malicious payload, and there is no evidence that the current package release is malicious. The vulnerability is the absence of dependency pinning and integrity verification at this executable supply-chain boundary. ### Attack Path 1. An attacker compromises the npm package publisher account, registry resolution path, or another mechanism controlling the release resolved by the unversioned `mcporter` package reference. 2. The attacker publishes or serves a malicious release under the expected package name. 3. A user or agent installs the Skill dependency from the mutable package reference. 4. The package manager resolves the attacker-controlled release because no reviewed version or integrity hash is enforced. 5. Malicious code executes through an npm lifecycle script or when the installed `mcporter` binary is invoked. 6. The code operates with ...[truncated 764 chars]
Remediation
## Remediation Suggestions 1. Pin `mcporter` to a specific version that has been reviewed and tested rather than resolving the latest available release. 2. Enforce package integrity using an npm lockfile with integrity metadata or an equivalent immutable artifact digest. 3. Verify package provenance, publisher identity, and registry source before installation. 4. Prefer reproducible installation mechanisms such as `npm ci` against a committed lockfile. 5. Disable npm lifecycle scripts during installation where operationally feasible, then explicitly enable only required and reviewed installation behavior. 6. Run the CLI under a least-privileged account or sandbox, exposing only the configuration, credentials, files, and network destinations required for the requested operation. 7. Establish a controlled dependency-update process that reviews release changes and refreshes the pinned version and integrity data only after validation.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Missing User Warnings

Medium
Confidence
96% confidence
Finding
The skill explicitly enables configuration changes, authentication flows, and direct invocation of remote or local MCP servers, yet it provides no safety guidance about credential exposure, unintended side effects, or modifying persistent config. In this context, omission of warnings is security-relevant because users may run commands that authenticate to third-party services, edit config files, or invoke tools that read/write sensitive data without understanding the risks.

External Transmission

Medium
Category
Data Exfiltration
Content
Call tools
- Selector: `mcporter call linear.list_issues team=ENG limit:5`
- Function syntax: `mcporter call "linear.create_issue(title: \"Bug\")"`
- Full URL: `mcporter call https://api.example.com/mcp.fetch url:https://example.com`
- Stdio: `mcporter call --stdio "bun run ./server.ts" scrape url=https://example.com`
- JSON payload: `mcporter call <server.tool> --args '{"limit":5}'`
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.