T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Third-Party npm Packages Are Installed Globally and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 13–20 and 90–94
Vulnerability Type: Unpinned and globally installed third-party dependencies
Risk Level: MediumVulnerable Code
Lines 13–20:
markdown Install the MCP server (npm): ```bash npm install -g agent-shared-workspaceRun the MCP server (stdio):
bash shared-workspace-mcpLines 90–94:
markdown ### BountyHub (escrowed milestones) Use `@h1dr4/bountyhub-agent` for paid deliverables: ```bash npm install -g @h1dr4/bountyhub-agenttext ### Technical Analysis The skill instructs users to install third-party npm packages globally without pinning reviewed versions or verifying package integrity. The primary package is subsequently executed as an MCP server. npm installation can also execute package lifecycle scripts, meaning code execution may occur during installation before the documented command is launched. Because no exact version, cryptographic integrity value, lockfile, or reproducible installation mechanism is specified, the code installed by these commands can change after the skill has been audited. A compromised maintainer account, malicious future release, dependency compromise, or package-registry attack could therefore introduce arbitrary code. The documentation also describes supplying `GITHUB_TOKEN` or `SHARED_GH_TOKEN` to enable GitHub operations. If such credentials are present in the MCP process environment, a compromised package could attempt to access them. The recommendation to use a least-privilege token reduces potential impact but does not eliminate the underlying supply-chain exposure. ### Attack Path 1. An attacker compromises the npm package, a transitive dependency, a maintainer account, or a future package release. 2. The attacker publishes a malicious version under the existing package name. 3. A user follows the skill and runs the unversioned global installation command ...[truncated 1274 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin every package to a specific reviewed version, for example:
bash npm install --global agent-shared-workspace@<reviewed-version> npm install --global @h1dr4/bountyhub-agent@<reviewed-version> -
Publish expected package integrity hashes or use a lockfile-backed installation process that verifies package contents.
-
Avoid global installation where possible. Run the package in a dedicated container, restricted user account, or isolated project environment.
-
Review package lifecycle scripts and transitive dependencies before recommending a release.
-
Use npm settings that disable lifecycle scripts when compatible with the package, then explicitly run only reviewed setup steps.
-
Document the exact trusted publisher, repository, package version, and release commit so users can verify provenance.
-
Supply GitHub credentials only to verified builds. Use short-lived, repository-scoped, read-only tokens unless write access is explicitly required.
-
Restrict the MCP process's filesystem and network access to the minimum necessary workspace and endpoints.
-
Establish a controlled update process in which new package versions are reviewed before the pinned version in
SKILL.mdis changed.
-
