T08 · Insecure Dependencies
- Location
SKILL.md:32- Finding
Unpinned Third-Party Package Download and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 32
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable code:
text Also available as MCP server: `npx @jclvsh/dropspace-mcp`Technical Analysis
The documentation recommends running a third-party npm package through
npxwithout pinning a specific version or verifying its integrity. Depending on the local npm/npx configuration and cache state, this command can download the current package release from the npm registry and execute it immediately.Consequently, the code executed by users can change after this Skill has been audited. The project contains no vendored package source, lockfile, checksum, or signature that would allow the referenced MCP implementation to be verified against a reviewed version. The package namespace also differs from the repository owner listed in the Skill metadata, increasing the importance of documenting and verifying the authoritative publisher.
This is a supply-chain risk rather than proof that the current npm package is malicious.
Attack Path
- An attacker compromises the npm publisher account, the package's release pipeline, or another relevant distribution component.
- The attacker publishes a malicious version of
@jclvsh/dropspace-mcp. - A user or Agent follows the documented unversioned
npxcommand. npxretrieves the mutable package release and executes its lifecycle or application code.- The malicious package runs with the privileges of the invoking user and can attempt to access environment variables, local files, network resources, and Agent-accessible services.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the invoking process's user privileges. Because this Skill requires
DROPSPACE_API_KEYin the environment, malicious package code could potentially read and exfiltrate that credential. Depending on the ke ...[truncated 674 chars]- Remediation
View remediation
Remediation Suggestions
-
Replace the unversioned command with an exact, reviewed package version, for example:
bash npx --yes @jclvsh/dropspace-mcp@X.Y.ZDo not use a floating tag such as
latest,^X.Y.Z, or~X.Y.Z. -
Prefer installing the dependency through a committed package manifest and lockfile so the resolved dependency graph and integrity metadata can be reviewed and reproduced.
-
Verify package provenance and document the authoritative npm publisher. Enable npm provenance/signature checks where available and compare the distributed artifact with the referenced source repository.
-
Review the package and its transitive dependencies before recommending execution. Update the pinned version only after security review.
-
Run the MCP server in a restricted environment with minimal filesystem access, network access, environment variables, and Agent tool permissions.
-
Pass only a least-privilege Dropspace API key to the process. Keep
publish,delete, andadminscopes disabled unless explicitly required, and use a separate short-lived or readily revocable key for MCP operation. -
Avoid exposing unrelated secrets to the process, monitor package-version changes, and rotate the Dropspace key promptly if dependency compromise is suspected.
-
