T08 ยท Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned Package Download and Automatic Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 9โ17 and 29โ30
Vulnerability Type: Unpinned third-party dependency executed from a remote package registry
Risk Level: MediumVulnerable Code:
yaml "install": [ { "id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (node)", }, ],shell npx -y mcporter call mcp-on-edge.edgeone.app/mcp-server.deploy-html value="<html>Content</html>" npx -y mcporter call mcp-on-edge.edgeone.app/mcp-server.deploy-html value="$(cat index.html)"Technical Analysis
The Skill declares
mcporterwithout an exact version and instructs users to invoke it throughnpx -y. When the package is not already available locally,npxcan retrieve the currently resolved package release from the configured registry and execute it automatically. The-yoption suppresses the interactive installation confirmation.No lockfile, integrity hash, exact package version, or other mechanism constrains the downloaded artifact to the version reviewed by the Skill author. Consequently, the code executed during a future invocation can differ from the code that existed when this Skill was audited. Exploitation would require compromise of the package, its publisher account, the registry or dependency-resolution path, or publication of a malicious future release.
Attack Path
- An attacker compromises the
mcporterpackage publication channel or causes a malicious release to resolve under that package name. - A user or Agent follows the documented
npx -y mcporterdeployment command. npxdownloads the unconstrained package release without requesting confirmation.- Package installation hooks or runtime code execute with the permissions and environment of the invoking account.
- The malicious code can access resources available to that accou ...[truncated 914 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
mcporterto a specific, reviewed version in both installation metadata and invocation commands, such asmcporter@<exact-version>. - Manage the dependency through a committed lockfile and use deterministic installation, such as
npm ci, rather than resolving the latest release at execution time. - Verify package integrity through registry integrity metadata, approved hashes, provenance attestations, or signature verification.
- Avoid using
npx -yto automatically download and execute an unconstrained package during deployment. - Retrieve dependencies from a trusted, access-controlled registry or approved internal mirror.
- Review the pinned package, its transitive dependencies, and lifecycle scripts before approval; repeat this review before version upgrades.
- Run the deployment utility in a least-privilege sandbox with minimal filesystem, environment-variable, credential, and network access.
- Warn users explicitly that deployed input is sent to a third-party service and exposed through a public URL.
- Pin
