T08 · Insecure Dependencies
- Location
SKILL.md:195- Finding
Unpinned npm CLI Package Executed Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:102,SKILL.md:195,SKILL.md:204-207,SKILL.md:229, andSKILL.md:238
Vulnerability Type: Supply-chain exposure caused by an unpinned runtime dependency
Risk Level: MediumVulnerable Code
SKILL.md:102:bash npx clawhub install nombre-del-skillSKILL.md:195:bash npx clawhub loginSKILL.md:204-207:bash npx clawhub publish /mnt/data/openclaw/workspace/.openclaw/workspace/skills/nombre-del-skill \ --slug nombre-del-skill \ --name "Nombre del Skill" \ --version 1.0.0 \ --tags "tag1,tag2,tag3"SKILL.md:229:bash npx clawhub publish /mnt/data/openclaw/workspace/.openclaw/workspace/skills/nombre-del-skillSKILL.md:238:bash npx clawhub loginTechnical Analysis
The Skill directs an agent or user to invoke the
clawhubnpm package throughnpxwithout specifying an exact reviewed version or integrity constraint. If the package is not already installed locally,npxcan retrieve package code from the configured npm registry and execute it at runtime.Consequently, the effective executable code is not contained in this project and can change after the Skill has been audited. The project also contains no package lockfile, integrity hash, or vendored CLI implementation with which to verify the code that will execute.
This is a supply-chain weakness rather than evidence that the current
clawhubpackage is malicious. Exploitation depends on the registry package, publishing account, dependency chain, registry configuration, or package resolution process being compromised.Attack Path
- An agent or user follows one of the documented
npx clawhubcommands. npxresolves the unpinnedclawhubpackage using the environment's configured npm registry.- A compromised or unexpectedly changed release is downloaded if a suitable trusted local copy is una ...[truncated 1020 chars]
- An agent or user follows one of the documented
- Remediation
View remediation
Remediation Suggestions
- Replace unversioned invocations with an exact, previously reviewed CLI version, for example through a project dependency pinned in
package.json. - Commit the generated lockfile and install dependencies using a lockfile-enforcing command such as
npm ci. - Verify package provenance, publisher identity, registry origin, and integrity before approving a new version.
- Configure an explicit trusted npm registry rather than relying on an uncontrolled environment-level registry configuration.
- Prefer a separately installed and reviewed CLI binary over allowing
npxto download executable code implicitly during a sensitive login or publishing operation. - Run the CLI with least privilege in an isolated environment that has access only to the Skill directory being published.
- Avoid exposing unrelated environment variables, credentials, SSH material, or workspace files to the publishing process.
- Document an update-review process so that changing the pinned CLI version requires renewed security review and testing.
- Replace unversioned invocations with an exact, previously reviewed CLI version, for example through a project dependency pinned in
