T08 · Insecure Dependencies
- Location
skill.json:22- Finding
Automatic Execution of an Unpinned Third-Party MCP Package
- Content
View full analysis
Vulnerability Details
File Location:
skill.json:22-29andREADME.md:19-27
Vulnerability Type: Unpinned executable dependency and unsafe automatic package resolution
Risk Level: MediumVulnerable Code
skill.json:22-29:json "mcp": { "command": "npx", "args": ["-y", "@agentdocs1/mcp-server", "--http"], "env": { "AGENTDOCS_URL": "${config.agentdocs_url}", "API_KEY": "${config.api_key}", "DEFAULT_PACKS": "engineering,it_devops,github" },The same installation pattern is documented in
README.md:19-27:json "mcpServers": { "uplo-engineering": { "command": "npx", "args": ["-y", "@agentdocs1/mcp-server", "--http"], "env": { "AGENTDOCS_URL": "https://your-instance.uplo.ai", "API_KEY": "your-api-key", "DEFAULT_PACKS": "engineering,it_devops,github" }Technical Analysis
The configuration invokes
npxwith the automatic-confirmation option-yand specifies@agentdocs1/mcp-serverwithout an exact version or verified integrity value. Consequently, package startup can resolve and execute whichever release the package registry currently serves rather than a specific release reviewed together with this skill.This constitutes a supply-chain risk because remotely distributed package code is executed locally after the static skill package has been audited. The effective executable payload can therefore change independently of the reviewed files. The package process also receives
API_KEYandAGENTDOCS_URLthrough its environment, placing sensitive authentication material directly within reach of the dependency.The package namespace differs from the advertised UPLO product name, and the repository contains no package-provenance or integrity verification information. This does not establish malicious ownership, but it increases the importance of explicit publisher verification and immutable dependency pin ...[truncated 1649 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to an exact, audited version, for example:
json "args": ["-y", "@agentdocs1/mcp-server@1.2.3", "--http"]Replace the example version with a release that has been independently reviewed.
-
Use a lockfile and verified registry integrity hash so that installation fails if package contents differ from the reviewed artifact.
-
Verify and document the relationship between UPLO and the
@agentdocs1package namespace, including the authoritative publisher and repository. -
Avoid
npx -yfor security-sensitive first-time execution where practical. Install the reviewed package through a controlled deployment process and execute the locally pinned binary. -
Run the MCP server in a sandbox or container with restricted filesystem, process, and outbound-network access.
-
Issue a dedicated, short-lived API token with only the minimum read or tool permissions required by this skill. Do not reuse administrative or broadly privileged credentials.
-
Restrict token use to expected origins or workloads where supported, rotate it regularly, and monitor for anomalous queries or data exports.
-
Update
README.mdto use the same pinned and verified installation procedure so users are not directed to reproduce the unsafe configuration.
-
