T08 · Insecure Dependencies
- Location
SKILL.md:23- Finding
Unpinned Global Installation of a Third-Party npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15 and 23-24
Vulnerability Type: Supply-chain exposure through an unpinned global dependency
Risk Level: MediumRelevant Code Snippet:
yaml allowed-tools: Bash metadata: author: dokobot version: "2.3.4" openclaw: {"requires": {"bins": ["dokobot"]}, "optionalEnv": ["DOKO_API_KEY"]}markdown ## Prerequisites - `@dokobot/cli` installed globally (`npm install -g @dokobot/cli`)Technical Analysis
The Skill instructs users or agents to install
@dokobot/cliglobally without specifying an exact package version, integrity hash, lockfile, or immutable artifact. Although the Skill metadata declares version2.3.4, that value does not constrain the version installed bynpm install -g @dokobot/cli.The package implementation is not included in the audited project, so its installation scripts and runtime behavior cannot be verified from this artifact. npm packages may execute lifecycle scripts during installation. A global installation also makes the resulting executable broadly available to the current user and increases the consequences of a compromised or unexpectedly modified release.
This is a supply-chain weakness rather than evidence that the named package is currently malicious.
Attack Path
- An attacker compromises the npm package, its maintainer account, release pipeline, or another relevant distribution component.
- The attacker publishes a modified release under the expected package name.
- A user or agent follows the Skill instructions and runs
npm install -g @dokobot/cli. - npm retrieves the current package version because no version or integrity value is pinned.
- Malicious lifecycle scripts may execute during installation, or malicious behavior may run when the
dokobotbinary is invoked. - The payload executes with the permissions of the user performing the installation or running the ...[truncated 592 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the package to a specifically audited version, for example
@dokobot/cli@2.3.4, after independently verifying that release. - Publish and verify the expected package integrity hash or signed release provenance.
- Prefer a project-local dependency governed by a committed lockfile instead of global installation.
- Use
npm ciwith a reviewed lockfile where the deployment model permits it. - Review package lifecycle scripts and consider disabling them with
--ignore-scriptsif they are not required. - Verify the package publisher, official registry source, extension publisher, and repository-release relationship before installation.
- Run the CLI under a dedicated, minimally privileged operating-system account or sandbox.
- Establish an explicit update-review process instead of recommending an unconstrained update to the latest release.
- Pin the package to a specifically audited version, for example
