T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:22-26,README.md:12-15, andREADME.md:31-34
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumVulnerable Code
SKILL.md:22-26:markdown 3. **Add the MCP server** — Run the following to add the JobGPT MCP server: - Claude Code: `claude mcp add jobgpt -t http -u https://mcp.6figr.com/mcp --header "Authorization: <api-key>"` - Other tools: Add `jobgpt-mcp-server` as an MCP server with env var `JOBGPT_API_KEY` set to the API key. Install via `npx jobgpt-mcp-server`.README.md:12-15:markdown **Vercel Skills.sh** ```bash npx skills add 6figr-com/skillstext `README.md:31-34`: ```markdown ```bash npx jobgpt-mcp-servertext ### Technical Analysis The installation instructions invoke npm packages through `npx` without specifying an exact package version or verifying a package integrity hash. Consequently, these commands resolve and execute whatever package release the npm registry serves at installation time, rather than a release whose contents were reviewed together with this repository. This creates a supply-chain trust boundary because npm packages can execute JavaScript locally and may invoke lifecycle or runtime code. The effective implementation can therefore change after the Skill itself has been audited. A compromise of the package publisher, npm account, package distribution process, or a future package release could turn the documented installation procedure into an arbitrary code-execution channel. The risk is particularly relevant for `jobgpt-mcp-server` because the resulting process is expected to receive the `JOBGPT_API_KEY` environment variable and handle sensitive career-related information. ### Attack Path 1. An attacker compromises the npm publisher account, release pipeline, or another distribution component associated with one of the referenced pack ...[truncated 1487 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin every npm dependency to an exact, reviewed version rather than relying on the latest registry release. For example:
bash npx jobgpt-mcp-server@<reviewed-exact-version> npx skills@<reviewed-exact-version> add 6figr-com/skills -
Publish and verify expected package integrity hashes or signed provenance before execution.
-
Use a committed lockfile when installing the MCP server as part of a local project, and require reproducible, lockfile-enforced installation in deployment workflows.
-
Disable npm lifecycle scripts where they are not required, such as by using
--ignore-scripts, after confirming that this does not prevent legitimate package operation. -
Document the expected npm publisher, source repository, package version, and verification procedure so users can detect package substitution or ownership changes.
-
Run the MCP server with least privilege in an isolated environment. Limit filesystem access, network access, and exposed environment variables to those strictly required.
-
Store the API key in an appropriate secret manager and rotate it immediately if dependency compromise is suspected.
-
