T08 · Insecure Dependencies
- Location
SKILL.md:12- Finding
Unpinned npm Dependency Permits Supply-Chain Substitution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 12-21
Vulnerability Type: T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
yaml "requires": { "bins": ["mcporter"], "env": ["FOOTBALLGPT_API_KEY"] }, "primaryEnv": "FOOTBALLGPT_API_KEY", "install": [ { "id": "node", "kind": "node", "package": "mcporter", "bins": ["mcporter"], "label": "Install mcporter (npm)", }, ],Technical Analysis
The installation metadata identifies the npm package only as
mcporter, without an exact version or integrity hash. Consequently, installation can resolve to whichever package release the configured registry currently serves rather than to an immutable, previously audited artifact.If the package, its maintainer account, the package registry, or the dependency-resolution path is compromised, a malicious release could execute code through package lifecycle scripts or through the installed
mcporterbinary. The Skill subsequently configures that binary to handle theFOOTBALLGPT_API_KEY, increasing the sensitivity of a dependency compromise.The reviewed file does not establish that
mcporteris currently malicious. The vulnerability is the mutable and insufficiently verified dependency specification.Attack Path
- An attacker compromises the npm package, a maintainer account, or the dependency-delivery path and publishes or serves a malicious
mcporterrelease. - A user installs the Skill when the unversioned package declaration resolves to that release.
- Malicious code executes during an npm lifecycle phase or when the installed command is invoked.
- The code runs with the installing or invoking user's privileges.
- It may inspect local files and environment variables, including
FOOTBALLGPT_API_KEYwhen available, or alter requests sent through the configured MCP client. - Stolen information may then be transmit ...[truncated 635 chars]
- An attacker compromises the npm package, a maintainer account, or the dependency-delivery path and publishes or serves a malicious
- Remediation
View remediation
Remediation Suggestions
- Pin
mcporterto an exact, reviewed version rather than relying on the latest registry release. - Enforce a cryptographic integrity hash or lockfile for the complete transitive dependency graph.
- Retrieve packages only from an explicitly trusted registry and use registry allowlisting where supported.
- Verify package provenance or signatures before installation.
- Disable npm lifecycle scripts where operationally feasible, or review all lifecycle scripts before permitting execution.
- Run installation and the MCP client with least privilege in an isolated environment.
- Limit exposure of
FOOTBALLGPT_API_KEY, rotate it after suspected dependency compromise, and monitor for unauthorized API activity. - Document the expected package publisher, version, checksum, and registry so substitutions can be detected.
- Pin
