T08 · Insecure Dependencies
- Location
SKILL.md:33- Finding
Mutable Global npm Dependencies Installed from a Custom Registry
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:33-37,SKILL.md:67-70, andSKILL.md:697-705
Vulnerability Type: Supply-chain exposure through globally installed, mutable dependencies
Risk Level: MediumVulnerable Code
bash # First installation or upgrade to the latest registry release npm install -g @tencent/zenvfx-cli@latest --registry https://mirrors.tencent.com/npm/ # Upgrade to a specified version npm install -g @tencent/zenvfx-cli@0.9.1 --registry https://mirrors.tencent.com/npm/The recommended installation procedure repeats the mutable installation:
bash npm install -g @tencent/zenvfx-cli@latest --registry https://mirrors.tencent.com/npm/The documented daemon workaround also installs a non-exact dependency directly into the global CLI package:
bash # Locate the global installation directory npm root -g # Install React into the CLI package cd "$(npm root -g)/@tencent/zenvfx-cli" npm install react@18 --no-save --registry=https://mirrors.tencent.com/npm/ # Restart the daemon zenvfx daemon:stop zenvfx daemon:statusTechnical Analysis
The primary installation path uses the mutable
@latesttag. The effective package contents can therefore change after this skill has been reviewed. The React workaround similarly uses the broadreact@18range rather than an exact, integrity-verified artifact.Both packages are obtained from a custom npm registry, and the instructions do not require package-integrity verification, provenance validation, a lockfile, or lifecycle-script restrictions. npm packages can define installation lifecycle scripts. Consequently, a compromised publisher account, registry, package artifact, or dependency could cause code to execute during installation.
The use of
-gincreases the affected scope because it places executable packages in the user's global npm prefix. The workaround also modifies the installed global CLI pac ...[truncated 1622 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestandreact@18with exact, reviewed versions. - Verify package integrity using trusted checksums, npm integrity metadata, signed provenance, or an internally maintained allowlist.
- Prefer a project-local, containerized, or otherwise isolated installation over a global installation.
- Generate and enforce a lockfile for the CLI and all transitive dependencies where deployment architecture permits.
- Use
--ignore-scriptsduring installation unless lifecycle scripts have been reviewed and are strictly required. - Document the trust boundary and security controls of the custom registry.
- Avoid modifying a global package in place to add React. Publish a corrected CLI package with an exact dependency or replace the React-dependent import with the appropriate non-React implementation.
- Run the CLI under a dedicated, least-privileged account and never install it with administrative privileges unless strictly necessary.
- Restart the daemon only after verifying that its executable and dependency versions match the approved artifacts.
- Replace
