T08 · Insecure Dependencies
- Location
SKILL.md:42- Finding
Unpinned Third-Party Packages Are Downloaded and Executed Automatically
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 42-93
Vulnerability Type: Unpinned and automatically approved third-party dependency execution
Risk Level: HighVulnerable Code
At line 42:
bash npx -y @shopmeagent/logistics-tracking-mcp serveAt lines 70-71:
json "command": "npx", "args": ["-y", "@shopmeagent/logistics-tracking-mcp"]At line 82:
json "args": ["-y", "@shopmeagent/logistics-tracking-mcp"],At line 93:
bash npx skills add shopmeskills/mcpTechnical Analysis
The documented installation and execution procedures invoke third-party packages without specifying an exact version, integrity hash, lockfile, or other immutable artifact identifier. The
-yoption also suppresses interactive installation confirmation.As a result, the package selected and executed at installation time can differ from the package that existed when this skill was audited. The effective behavior therefore depends on mutable external package-registry content that is not present in the reviewed project. Because the project contains only
SKILL.md, the implementation downloaded by these commands cannot be verified from the audit artifact.npm package lifecycle scripts and executable entry points can run code with the permissions of the invoking process. A malicious release, compromised publisher account, or compromised dependency could therefore execute attacker-controlled code during installation or startup.
Attack Path
- An attacker compromises the publisher account, package release process, or dependency chain associated with
@shopmeagent/logistics-tracking-mcpor the separately installed skill package. - The attacker publishes a malicious release under the package name resolved by the unpinned command.
- A user follows the documented instructions and runs an
npxcommand without an exact package version. - npm resolves and downloads the ...[truncated 1206 chars]
- An attacker compromises the publisher account, package release process, or dependency chain associated with
- Remediation
View remediation
Remediation Suggestions
-
Pin every downloaded package to an exact, reviewed version, for example:
bash npx --yes @shopmeagent/logistics-tracking-mcp@1.0.1 serveThe example version must be replaced with a version that has actually undergone security review.
-
Avoid using
npx -yin security-sensitive deployment instructions. Require explicit operator confirmation or install dependencies during a controlled build stage. -
Maintain a lockfile and use reproducible installation commands such as
npm cirather than resolving mutable dependency versions at runtime. -
Verify package integrity using registry integrity metadata, signed provenance, checksums, or an internal artifact repository containing approved immutable packages.
-
Disable npm lifecycle scripts during installation where they are unnecessary, and separately review any scripts that must be enabled.
-
Include the implementation source in the audited project or provide a verifiable source repository and commit reference corresponding exactly to the published package.
-
Run the MCP server under a dedicated, least-privileged service account. Restrict filesystem access, outbound networking, and environment-variable exposure to the minimum required for package tracking.
-
Store
TRACK17_API_KEYin a managed secret store and expose it only to the approved runtime process. Rotate the key immediately if an untrusted package version may have executed. -
Pin the separately installed
shopmeskills/mcpcontent to a reviewed immutable version or commit rather than relying on a mutable repository or package reference.
-
