T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party Runtime Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10-14
Vulnerability Type: Unpinned npm dependency and mutable supply-chain input
Risk Level: MediumVulnerable Code
markdown The runtime plugin is installed from npm: ```bash npm install twzrd-preflighttext ### Technical Analysis The documented installation command does not specify an exact package version or integrity hash. Consequently, every installation resolves the package version available under the mutable `twzrd-preflight` npm name at installation time. The project contains no lockfile, vendored package source, checksum, package provenance information, or executable implementation that would allow the downloaded code to be compared with an audited version. npm packages can execute lifecycle scripts during installation and subsequently run with the privileges of the OpenClaw process. This is especially security-sensitive because the package is intended to operate in the execution path for payment-shaped tool calls and wrap an HTTP client before requests reach a signer. The audit did not establish that the current npm package is malicious; the vulnerability is the unsafe, unverifiable dependency acquisition mechanism. ### Attack Path 1. An attacker compromises the npm publisher account, package repository, release process, or another component of the package's dependency chain. 2. The attacker publishes a malicious version under the existing `twzrd-preflight` package name. 3. An operator follows the documented `npm install twzrd-preflight` command. 4. npm resolves and downloads the attacker-controlled release because no exact version or integrity value is required. 5. Malicious code can execute through npm lifecycle scripts or when OpenClaw loads the installed plugin. 6. The code then runs in the payment-call and HTTP-client execution context available to the OpenClaw process. ### Impact Assessment Successful exploitatio ...[truncated 737 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to a specifically reviewed version, for example:
bash npm install --save-exact twzrd-preflight@<audited-version> - Commit a lockfile containing npm integrity metadata and require reproducible, lockfile-enforced installation with
npm ci. - Verify the package publisher, source repository, release provenance, and signatures before installation.
- Record and validate the expected package archive checksum in the deployment process.
- Audit the package source, transitive dependencies, and npm lifecycle scripts for the pinned release.
- Disable lifecycle scripts during dependency acquisition where compatible:
bash npm ci --ignore-scripts - Run the plugin under least privilege, isolate it from unnecessary credentials and files, and ensure that payment signing requires an independent authorization boundary.
- Use automated dependency monitoring, but require security review before updating the pinned version.
- Pin the dependency to a specifically reviewed version, for example:
