T08 · Insecure Dependencies
- Location
SKILL.md:9- Finding
Unpinned Third-Party npm Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 9-18
Vulnerability Type: Supply-chain risk caused by an unpinned third-party dependency
Risk Level: MediumVulnerable Code
json "install": [ { "id": "node", "kind": "node", "package": "univer-cli", "bins": ["unv"], "label": "Install univer-cli (npm)", }, ],The installation instructions also direct users to execute
npm i -g univer-cli, without specifying a reviewed version or package integrity value.Technical Analysis
The skill declares
univer-cliby package name only. Consequently, npm resolves the package version from mutable registry metadata at installation time, normally selecting the latest compatible release. The effective executable code is therefore not fixed to the content reviewed in this project.npm packages can contain lifecycle scripts that execute during installation. A compromised maintainer account, malicious future release, registry compromise, or package ownership transfer could cause subsequently installed versions to execute attacker-controlled code. Global installation also places the
unvexecutable in a shared command location, expanding the effect beyond a single isolated project.The repository contains only
SKILL.md; it does not contain the dependency source, a lockfile, an integrity hash, or other material through which the behavior of the installed package could be independently verified. This finding does not establish that the currentuniver-clipackage is malicious. It identifies an unsafe, mutable supply-chain trust boundary.Attack Path
- An attacker compromises the npm package publisher, package ownership, registry release channel, or a future package release.
- The attacker publishes a malicious version under the existing
univer-clipackage name. - A user follows the skill metadata or documentation and installs
univer-cli...[truncated 965 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the dependency to an exact version that has undergone security review, rather than resolving the latest release:
json "package": "univer-cli@<reviewed-exact-version>" - Update the documented command to use the same exact reviewed version:
bash npm install -g univer-cli@<reviewed-exact-version> - Prefer a project-local installation with a committed lockfile over global installation, reducing shared-system effects and preserving deterministic resolution.
- Verify npm registry integrity metadata and document the expected publisher, repository, package version, and artifact digest.
- Review the selected package version, including its transitive dependencies and npm lifecycle scripts, before recommending installation.
- Where compatible with the package, install with lifecycle scripts disabled and enable only explicitly reviewed setup steps:
bash npm install --ignore-scripts --save-exact univer-cli@<reviewed-exact-version> - Run spreadsheet processing in a least-privileged, isolated environment with restricted filesystem and network access, especially when handling untrusted workbooks.
- Pin the dependency to an exact version that has undergone security review, rather than resolving the latest release:
