T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned npm Dependency Permits Supply-Chain Code Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 16
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: MediumVulnerable Code
yaml "install": [{"id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (npm)"}],Technical Analysis
The installation configuration references the npm package
mcporterwithout an exact version or integrity hash. Package names without immutable version and integrity constraints can resolve to a different artifact over time.The Skill subsequently instructs the Agent to execute the installed
mcporterbinary for authentication-status checks, searches, operation polling, and profile retrieval. Consequently, a compromised or unexpectedly modified package release could run arbitrary code through npm lifecycle behavior or when the binary is invoked. The project contains no lockfile, checksum, signature requirement, or other mechanism that establishes the identity of the reviewed dependency artifact.This finding does not establish that the current
mcporterpackage is malicious. The vulnerability is the unsafe, mutable dependency resolution and execution model.Attack Path
- An attacker compromises the package publisher, npm account, publication pipeline, or another component capable of publishing a modified
mcporterrelease. - The attacker publishes a malicious version under the expected package name.
- A user or Agent installs the Skill dependency without an exact version or integrity constraint.
- npm resolves the mutable package reference to the attacker-controlled release.
- Malicious code executes during package installation or when the Skill invokes the
mcporterbinary. - The payload operates with the permissions and accessible environment of the installing or executing account.
Impact Assessment
Successful exploitation could provide arbitrary code execution wit ...[truncated 544 chars]
- An attacker compromises the package publisher, npm account, publication pipeline, or another component capable of publishing a modified
- Remediation
View remediation
Remediation Suggestions
- Pin
mcporterto a reviewed, exact version rather than using an unconstrained package name. - Record and verify the package artifact's integrity hash through a lockfile or an equivalent immutable verification mechanism.
- Confirm that the configured npm registry is trusted and prevent fallback to unapproved registries or package sources.
- Review the selected package version, including its transitive dependencies and installation scripts, before approval.
- Disable npm lifecycle scripts where they are unnecessary and compatible with the package.
- Install and execute the dependency in a least-privilege sandbox with restricted filesystem, credential, and network access.
- Establish an explicit dependency-update process that requires security review before changing the pinned version or integrity value.
- Pin
