T08 · Insecure Dependencies
- Location
SKILL.md:41- Finding
Unpinned Global Installation of a Mutable Third-Party Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:41,SKILL.md:215, andreferences/powershell.md:10-13
Vulnerability Type: Supply-chain exposure through an unpinned globally installed npm package
Risk Level: MediumVulnerable Code
SKILL.md:41:bash openspec --version &>/dev/null || npm install -g @fission-ai/openspec@latestSKILL.md:215:text | `--tools` list does not contain the target tool | OpenSpec version is outdated | Run `npm update -g @fission-ai/openspec` and check again |references/powershell.md:10-13:powershell if (-not (Get-Command openspec -ErrorAction SilentlyContinue)) { npm install -g @fission-ai/openspec@latest }Technical Analysis
The Skill directs the agent to install
@fission-ai/openspec@latestglobally or update the existing global package without pinning a reviewed version. The mutablelatesttag can resolve to different package contents over time. No lockfile, expected integrity hash, provenance check, or signature verification is specified.npm installations may execute package lifecycle scripts. A global installation also places the package and its executable in shared user-level or system-level npm locations, depending on the environment. After installation, the Skill invokes
openspec init, which generates configuration, command, and Agent skill files. It may subsequently copy those generated files into other Agent CLI configuration directories.This does not establish that the named package is malicious. The vulnerability is that future package contents are trusted and executed without reproducible version or integrity controls, increasing exposure to an upstream account compromise, malicious release, or unexpected behavior in a newly published version.
Attack Path
- An attacker compromises the upstream package, maintainer credentials, publication process, or a future package release.
- The compromis ...[truncated 1282 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an exact, reviewed version, for example:bash npm install -g @fission-ai/openspec@X.Y.Z - Define the approved version once and use the same exact version in both Bash and PowerShell instructions.
- Remove or replace the unbounded
npm update -grecommendation with installation of a specifically approved version. - Verify package provenance and expected integrity before installation. Record the approved package version, tarball integrity hash, and review date in the Skill.
- Prefer a project-local or isolated installation over a global installation, such as a locked development dependency executed through an appropriate package runner.
- Where compatible, suppress lifecycle scripts during installation and explicitly enable only scripts that have been reviewed.
- Run package installation without administrative privileges and use a dedicated, least-privileged environment.
- Review all files generated by
openspec initbefore loading or copying them into other Agent CLI directories. - Commit or stage the repository before initialization and inspect the resulting diff, including generated Agent instructions, before accepting the changes.
- Replace
