T08 · Insecure Dependencies
- Location
README.md:57- Finding
Unpinned Third-Party Package Installation and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:9,SKILL.md:167,README.md:15, andREADME.md:57-58
Vulnerability Type: Unpinned and automatically executed npm dependency
Risk Level: MediumVulnerable Code
SKILL.md:9andSKILL.md:167:bash npm install -g shll-skills --registry https://registry.npmjs.orgREADME.md:15:bash npm install -g shll-skillsREADME.md:57-58:json "command": "npx", "args": ["-y", "shll-skills", "--mcp"],Technical Analysis
The documented installation paths do not pin
shll-skillsto an exact audited version or verify a package integrity digest. In particular,npx -yautomatically downloads and executes whichever package version npm resolves at invocation time without an interactive approval step.The package is intended to run with access to
RUNNER_PRIVATE_KEY, a sensitive operator-wallet credential. However, this artifact contains onlyREADME.mdandSKILL.md; it does not include the installed package's source code, a dependency lockfile, or integrity metadata. Consequently, the effective executable payload and the claimed protections cannot be verified from the reviewed project.This creates a supply-chain trust gap: a compromised maintainer account, malicious package release, registry compromise, or unexpectedly changed latest release could cause users to execute code different from the version originally reviewed.
Attack Path
- An attacker compromises the npm package, its publishing account, or a release dependency and publishes a malicious version under
shll-skills. - A user or AI agent follows the documented unpinned global installation command or starts the MCP server through
npx -y. - npm resolves, downloads, and executes the malicious release.
- The package runs in a process whose environment contains
RUNNER_PRIVATE_KEY. - Malicious code reads and exfiltrates that key, submits unintende ...[truncated 1108 chars]
- An attacker compromises the npm package, its publishing account, or a release dependency and publishes a malicious version under
- Remediation
View remediation
Remediation Suggestions
- Pin every installation and execution command to a specific audited version, for example:
bash npm install -g shll-skills@6.0.4 --registry https://registry.npmjs.orgjson { "command": "npx", "args": ["--no-install", "shll-skills@6.0.4", "--mcp"] } - Avoid unattended remote execution through
npx -y. Install a reviewed package first and run the locally installed binary. - Publish and verify npm provenance, signatures, and integrity hashes. Document a reproducible verification procedure before execution.
- Include the executable source, exact dependency manifest, and lockfile in the audited artifact so package and transitive-dependency behavior can be reviewed.
- Use a controlled internal registry or approved package mirror where practical.
- Run the package in a sandbox with minimal filesystem, environment, and network permissions.
- Expose only the dedicated low-value operator key to the process. Never expose owner-wallet credentials or unrelated secrets.
- Preserve the documented transaction confirmation requirements and independently verify deployed contract addresses and PolicyGuard behavior.
- Keep the version references consistent:
README.mdidentifies version6.0.2, whileSKILL.mdidentifies6.0.4.
- Pin every installation and execution command to a specific audited version, for example:
