T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned npm CLI Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 7-11
Vulnerability Type: Supply-chain exposure through an unpinned executable dependency
Risk Level: MediumVulnerable Code
yaml metadata: openclaw: requires: bins: [node, certen] install: - kind: node package: "@certen.io/cli" bins: [certen]Technical Analysis
The Skill declares
@certen.io/cliwithout an exact version or integrity hash. Consequently, installation may resolve to mutable package content selected by the npm registry at installation time rather than to the specific release reviewed by the Skill author.Because npm packages can include executable code and installation lifecycle scripts, compromise of the publisher account, package, registry resolution path, or a future release could cause attacker-controlled code to execute during installation or when the
certenbinary is invoked. The repository itself contains no evidence that the current package is malicious; the vulnerability is the absence of dependency pinning and integrity verification.Attack Path
- An attacker compromises the npm package, its publisher account, or the applicable package-resolution channel.
- The attacker publishes a malicious release under the same package name.
- A user installs the Skill after that release becomes the version selected by npm.
- The installer retrieves the malicious package because no exact version or integrity value constrains resolution.
- Malicious code executes through an npm lifecycle script or when the installed
certencommand is invoked.
Impact Assessment
Code supplied by a compromised dependency could execute with the privileges of the account installing or running the Skill. Within those privileges, it could access local files, environment variables, CERTEN configuration and signing-key files, workspace content, and network resources. The scope would ...[truncated 84 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
@certen.io/clito a reviewed, exact version rather than permitting mutable version resolution. - Use a lockfile and verify the package against an expected registry integrity hash.
- Review package contents and lifecycle scripts before approving version upgrades.
- Disable npm lifecycle scripts during installation where compatible with the package.
- Retrieve dependencies only from an approved registry and use registry access controls and package-signature or provenance verification where available.
- Run installation and the CLI under a least-privileged, isolated account or container.
- Pin
