T08 · Insecure Dependencies
- Location
SKILL.md:100- Finding
Unpinned Global npm Dependency Executes Unaudited Code
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 97–101; dependency repeated at line 722
Vulnerability Type: Supply-chain risk from an unpinned, globally installed dependency
Risk Level: MediumVulnerable Code
bash # Install and initialize npm install -g quick-context-saver cd your-project memory-initThe dependency table repeats the unsafe installation requirement:
markdown | quick-context-saver | npm package | Required | `npm install -g quick-context-saver` |Technical Analysis
The Skill directs users or Agents with execution capability to install
quick-context-saverglobally from the npm registry without specifying an exact version, integrity hash, lockfile, or verified source. The implementation of this package is not included in the audited project, which contains onlySKILL.md; consequently, its installation scripts andmemory-*executables could not be reviewed.An unpinned package reference is mutable. A compromised maintainer account, malicious future release, registry compromise, or package-name takeover could cause the same installation command to retrieve attacker-controlled code. npm packages can execute lifecycle scripts during installation, and global installation makes package executables available outside the current project.
This finding does not establish that the current npm package is malicious. It establishes that the Skill trusts and executes an unaudited, mutable external dependency without adequate supply-chain controls.
Attack Path
- An attacker compromises the package publisher, package registry entry, or another component of the package's release process.
- The attacker publishes a malicious version under the expected
quick-context-saverpackage name. - A user or Agent follows the Skill instructions and runs:
bash npm install -g quick-context-saver - npm downloads the latest mutable package version and may execute attacker-controlled lifecycle script ...[truncated 1094 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact reviewed version rather than resolving the latest release:
bash npm install --save-exact quick-context-saver@X.Y.Z - Install the package locally within the project instead of globally, and invoke it through a locked project command such as
npx --no-install. - Commit a lockfile containing resolved versions and integrity metadata.
- Verify the package provenance, publisher identity, repository, release signatures, and npm provenance attestations before installation.
- Include the package implementation in the audited artifact or provide a verifiable source reference so its lifecycle scripts and executable commands can be reviewed.
- Disable npm lifecycle scripts during installation when they are unnecessary:
bash npm ci --ignore-scripts - Run the dependency under a restricted user or sandbox with access only to the memory directory required for the declared functionality.
- Do not expose
GITHUB_TOKEN,MEMORY_ENCRYPTION_KEY, or unrelated credentials to installation processes. Provide secrets only to the specific runtime operation that requires them. - Document the expected package checksum and establish a controlled update process requiring security review before changing versions.
- Pin the dependency to an exact reviewed version rather than resolving the latest release:
