T08 · Insecure Dependencies
- Location
references/capabilities.md:35- Finding
Unpinned npm Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
references/capabilities.md, line 35
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
markdown - Local launch pattern in this workspace: `npx aigroup-finnhub-mcp`Technical Analysis
The documented launch command uses
npxwithout an exact package version, lockfile, integrity hash, or trusted-registry restriction. If the package is not already installed locally,npxmay retrieve the current version ofaigroup-finnhub-mcpfrom the configured npm registry and execute it.This creates a mutable supply-chain boundary: the code executed at runtime can differ from the code that existed when this Skill was audited. A compromised package release, publisher account, registry, or dependency could therefore introduce arbitrary executable behavior without requiring any modification to the reviewed project.
The external MCP implementation is not bundled in this repository, so its internal behavior could not be audited. In addition,
agents/openai.yamlenables implicit invocation, which may increase how readily the external dependency is activated.Attack Path
- An attacker compromises the npm package, its publisher account, one of its transitive dependencies, or the registry resolution path.
- The attacker publishes a malicious or backdoored release under the package name.
- The workspace follows the documented
npx aigroup-finnhub-mcplaunch pattern. npxresolves and downloads the mutable package version from the configured registry.- The malicious package executes in the local Agent environment through the MCP stdio transport.
- The payload acts with the permissions and environmental access inherited from the process that launched it.
Impact Assessment
Successful exploitation could permit arbitrary code execution with the privileges of the Agent or user process launching
npx. Depending on the runtime environment, this may expose acces ...[truncated 406 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the MCP package to a specific, reviewed version rather than resolving the latest available release.
- Install it during a controlled build or setup phase using a committed lockfile instead of downloading it during Skill invocation.
- Enforce package integrity verification through lockfile integrity metadata or independently verified checksums.
- Configure npm to use an approved registry and disable unexpected registry overrides.
- Audit both the selected package release and its transitive dependencies before deployment.
- Run the MCP process in a sandbox with minimal filesystem, environment-variable, credential, and network access.
- Avoid passing unrelated secrets into the MCP process environment.
- Consider setting
allow_implicit_invocationtofalseunless automatic activation is operationally necessary. - Establish a controlled dependency-update process requiring security review before changing the pinned version.
