T08 · Insecure Dependencies
- Location
README.md:45- Finding
Unpinned npm Package Resolution and Execution
- Content
View full analysis
Vulnerability Details
File Location:
README.md, lines 45-49; additional inconsistent package guidance appears inSKILL.md, lines 46-47
Vulnerability Type: Supply-chain risk through mutable and inconsistent npm package references
Risk Level: MediumVulnerable Code
README.md:45-49:bash ## Quick Start npm install sevo npx sevo initSKILL.md:46-47:markdown - OpenClaw plugin: installed through `scripts/init.sh` - Standalone use: call the API after `npm install sevo-pipeline`Technical Analysis
The installation instructions resolve npm packages without an exact version or integrity constraint. In particular,
npx sevo initcan resolve and execute the version currently selected by the npm registry rather than a specifically audited release.The documentation also uses two different package identities:
sevoinREADME.mdandsevo-pipelineinSKILL.md. This inconsistency can cause users or automated agents to install an unintended package and increases exposure to package-name confusion or typosquatting.An npm package can execute local code through its CLI and lifecycle scripts. Consequently, compromise of the mutable registry release, loss of control over one of the referenced names, or publication of a misleading package could turn the documented setup procedure into a local code-execution channel.
No evidence was found that either referenced package is currently malicious. The vulnerability is the unsafe dependency acquisition and execution pattern.
Attack Path
- A user or agent follows the documented quick-start procedure.
- npm resolves
sevoorsevo-pipelinefrom the configured registry without requiring an audited version. - The registry returns the currently selected release, which may differ from the version represented by this artifact.
- npm executes package lifecycle scripts during installation.
npx sevo initexecutes the re ...[truncated 697 chars]
- Remediation
View remediation
Remediation Suggestions
-
Select and document one canonical npm package name consistently across
README.md,SKILL.md, andpackage.json. -
Pin installation and execution to a reviewed release, for example:
bash npm install sevo@1.13.1 npm exec --package=sevo@1.13.1 -- sevo init -
Publish package provenance and integrity information, and recommend lockfiles for local dependencies.
-
Protect npm publication with multi-factor authentication, trusted publishing, and restricted maintainer access.
-
Avoid automatically executing packages selected only by a mutable tag such as
latest. -
Verify that the published npm archive exactly matches the reviewed source and generated build artifacts.
-
Add CI checks that reject inconsistent package names and unpinned executable examples in installation documentation.
-
