T08 · Insecure Dependencies
- Location
skill.json:25- Finding
Automatic Execution of an Unpinned Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
skill.json:25-35
Additional Location:README.md:14-27
Vulnerability Type: Unpinned runtime dependency and automatic remote package execution
Risk Level: MediumVulnerable Code
json "mcp": { "command": "npx", "args": [ "-y", "@agentdocs1/mcp-server", "--http" ], "env": { "AGENTDOCS_URL": "${config.agentdocs_url}", "API_KEY": "${config.api_key}", "DEFAULT_PACKS": "hospitality" }, "transport": "http", "url": "${config.agentdocs_url}/mcp" }The installation example in
README.md:14-27documents the same unsafe execution pattern:json { "mcpServers": { "uplo-hospitality": { "command": "npx", "args": ["-y", "@agentdocs1/mcp-server", "--http"], "env": { "AGENTDOCS_URL": "https://your-instance.uplo.ai", "API_KEY": "your-api-key", "DEFAULT_PACKS": "hospitality" } } } }Technical Analysis
The configuration invokes
npxwith the-yoption and a package name that has no exact version or integrity constraint. As a result, the npm registry may be contacted at runtime to resolve, download, and execute the version currently selected for@agentdocs1/mcp-server.Because the effective executable is not pinned, locked, or included in this repository, its behavior can change after this Skill has been reviewed. The downloaded process runs with the operating-system privileges of the Agent user and receives the configured
AGENTDOCS_URLandAPI_KEYenvironment variables. There is no repository lockfile, vendored implementation, checksum, or other integrity mechanism establishing which package contents will execute.This is a supply-chain weakness rather than evidence that the current package is malicious. Exploitation would require compromise or malicious modification of the dependency, its maintainer accoun ...[truncated 1568 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to a reviewed exact version, for example:
json "args": [ "-y", "@agentdocs1/mcp-server@X.Y.Z", "--http" ] -
Install the dependency through a committed lockfile and use deterministic installation such as
npm ci. Avoid downloading executable dependencies each time the Skill starts. -
Verify npm package provenance and integrity. Record the expected package digest and reject artifacts that do not match the reviewed release.
-
Prefer a locally installed and audited executable over implicit runtime retrieval through
npx. -
Run the MCP server in a sandbox or container with restricted filesystem access, outbound network controls, and no unnecessary operating-system privileges.
-
Use a least-privilege UPLO token limited to the required tenant, operations, classifications, and datasets. Ensure that the token is short-lived and rotatable.
-
Prevent credentials from appearing in logs, crash reports, child-process listings, or diagnostic output. Rotate the API token immediately if dependency compromise is suspected.
-
Add dependency monitoring and require security review before updating the pinned package version.
-
