T08 · Insecure Dependencies
- Location
SKILL.md:48- Finding
Unpinned Third-Party npm Package Retrieval and Execution
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 48–70; repeated incommand-patterns.md, lines 4–13, anderrors-and-overrides.md, lines 54–58
Vulnerability Type: Unpinned third-party dependency execution
Risk Level: MediumComplete Code Snippet
From
SKILL.md, lines 48–70:bash npx clawic registry npx clawic search pocketbase --limit 5 npx clawic show pocketbase npx clawic install pocketbase --dir ./skillsbash npm install -g clawic clawic search pocketbase --limit 5text - `npx clawic ...` for one-off use, or `npm install -g clawic` for a persistent local binarytext `npx clawic ...` may fetch the published npm package if it is not already cached locally. Use a global install or a pinned project workflow when the user wants a repeatable local binary instead of ad hoc package fetches.The installation metadata at
SKILL.md, line 8 also identifies the package without an exact version:yaml metadata: {"clawdbot":{"emoji":"CLI","requires":{"bins":["node"],"anyBins":["clawic","npx"],"config":["~/clawic/"]},"install":[{"id":"npm-clawic","kind":"npm","package":"clawic","bins":["clawic"],"label":"Install clawic CLI (npm)"}],"os":["linux","darwin","win32"]}}Technical Analysis
The documented commands execute or globally install the third-party
clawicnpm package without specifying an exact audited version, lockfile, or integrity hash. When the package is not cached,npx clawicmay resolve, retrieve, and immediately execute the version currently selected by the npm registry. Similarly,npm install -g clawicinstalls mutable third-party code and exposes its executable persistently in the user's environment.Because package resolution is not pinned, the effective code can change after this Skill has been reviewed. A compromised npm publisher account, malicious package release, registry compromise, or compromised transitive dependency could therefore turn an apparently legitimate command ...[truncated 1722 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin every example to a reviewed exact package version, for example:
bash npx --yes clawic@1.0.0 registry npx --yes clawic@1.0.0 show pocketbase -
Change the installation metadata from an unversioned package reference to an exact reviewed version if the metadata format supports version constraints.
-
Prefer a project-local dependency recorded in
package.jsonwith a committed lockfile. Usenpm ciin repeatable environments rather than globally installing a mutable package. -
Verify the package's npm provenance, publisher identity, source repository, release tag, and integrity metadata before recommending execution.
-
Review lifecycle scripts and transitive dependencies. Where compatible, install with lifecycle scripts disabled:
bash npm ci --ignore-scriptsEnable only specifically reviewed scripts if the package requires them.
-
Avoid presenting
npm install -g clawicas the preferred repeatable workflow. A pinned project-local installation provides stronger isolation, reviewability, and removal behavior. -
Document an update process that requires review before changing the pinned version or lockfile, rather than silently accepting the newest registry release.
-
