T08 · Insecure Dependencies
- Location
forge-setup/SKILL.md:12- Finding
Unpinned npm Package Execution
- Content
View full analysis
Vulnerability Details
File Location:
forge-setup/SKILL.md, lines 12–14 and 23–25
Vulnerability Type: Supply-chain exposure through an unpinned npm dependency
Risk Level: MediumVulnerable Code
Installation command at lines 12–14:
bash npx -y @xferops/forge-mcpMCP client configuration at lines 23–25:
json "command": "npx", "args": ["-y", "@xferops/forge-mcp"], "env": {Technical Analysis
The installation instructions and persistent MCP configuration execute
@xferops/forge-mcpwithout specifying an exact package version or integrity constraint. Consequently,npxresolves a mutable package release from the npm registry. The-yoption suppresses the installation confirmation.No evidence indicates that the named package or publisher is currently malicious. However, this configuration creates a supply-chain trust boundary in which the code executed during setup or MCP startup can change after the skill has been reviewed. A compromised npm publisher account, registry namespace, or future package release could introduce arbitrary code that would execute under the MCP client user's account.
The configured process also receives
FORGE_TOKENin its environment. Therefore, a malicious package version could read and disclose that credential in addition to performing other actions available to the local user.Attack Path
- An attacker compromises the npm publisher account, package publication process, or another relevant supply-chain component for
@xferops/forge-mcp. - The attacker publishes a malicious version that becomes the version resolved by the unpinned package specification.
- A user runs the documented
npx -y @xferops/forge-mcpcommand, or the MCP client starts the configured command. npxretrieves and executes the malicious release without an interactive confirmation.- The malicious package runs with the MCP client user's permissions.
- It can read process environment variables, including ...[truncated 827 chars]
- An attacker compromises the npm publisher account, package publication process, or another relevant supply-chain component for
- Remediation
View remediation
Remediation Suggestions
-
Pin the package to an exact, reviewed version in both locations:
bash npx -y @xferops/forge-mcp@1.2.3json "command": "npx", "args": ["-y", "@xferops/forge-mcp@1.2.3"] -
Prefer installing the package through a committed lockfile and invoking the verified local binary rather than retrieving a mutable registry version during every startup.
-
Verify package integrity using npm lockfile integrity metadata and enforce package provenance or trusted-publisher controls in CI and deployment workflows.
-
Review and test new versions before updating the pin. Use an automated dependency-update process that requires security review and approval.
-
Restrict the Forge token to the minimum API permissions required by the MCP server, rotate it if package compromise is suspected, and avoid exposing unrelated secrets to the MCP process.
-
Where operationally feasible, run the MCP server in a sandbox or isolated account with limited filesystem, network, and environment-variable access.
-
