T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Global Installation of a Mutable npm Package
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 20–34
Vulnerability Type: Supply-chain risk from an unpinned global dependency
Risk Level: MediumVulnerable Code
bash Also ensure the latest Neta CLI is installed: neta-cli --version 0.8.0 npm i @talesofai/neta-skills@latest -g pnpm add -g @talesofai/neta-skills@latestTechnical Analysis
The Skill instructs users or agents to install
@talesofai/neta-skills@latestglobally. Thelatesttag is mutable, so the installed package can differ from the version that was reviewed. Although the document displays version0.8.0, neither installation command enforces that version or verifies package integrity.npm-compatible package installation can execute package lifecycle scripts. A global installation also modifies the user's shared command environment rather than an isolated project environment. Consequently, compromise of the publisher account, registry package, release pipeline, or a future
latestrelease could introduce arbitrary code at installation time or replace the expectedneta-cliexecutable.The audit found no evidence that the currently referenced package is malicious. The vulnerability is the unsafe dependency acquisition and installation pattern.
Attack Path
- An attacker compromises the package publisher, release pipeline, or registry package, or causes a malicious release to become the
latestversion. - A user or agent follows the prerequisite instructions and runs one of the global installation commands.
- The package manager resolves the mutable
latesttag to the attacker-controlled release. - Malicious package contents or lifecycle scripts execute with the privileges of the account running npm or pnpm.
- The package can replace or spoof
neta-cli, alter the shared user toolchain, access data available to that account, or influence subsequent Skill operations.
Impact Assessment
Succes ...[truncated 637 chars]
- An attacker compromises the package publisher, release pipeline, or registry package, or causes a malicious release to become the
- Remediation
View remediation
Remediation Suggestions
- Replace the mutable tag with an audited exact version:
bash npm install --global @talesofai/neta-skills@0.8.0 - Verify the downloaded package against an expected integrity hash or trusted package provenance before installation.
- Prefer a project-local, locked dependency over a global installation. Commit and enforce a lockfile so dependency resolution is reproducible.
- Disable package lifecycle scripts during installation where compatible:
bash npm install --ignore-scripts --save-exact @talesofai/neta-skills@0.8.0 - If lifecycle scripts are required, review them and the complete transitive dependency tree before approving a version.
- Run the CLI in a restricted environment with minimal filesystem access and expose
NETA_TOKENonly for commands that require authenticated API access. - Document the expected package publisher, registry, version, and checksum, and fail closed when any value differs.
- Replace the mutable tag with an audited exact version:
