T08 · Insecure Dependencies
- Location
SKILL.md:21- Finding
Mutable CLI Package Is Installed Globally Without Version Pinning
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:21-25; additional occurrence atreferences/functions.md:15-20
Vulnerability Type: Unsafe installation of an unpinned third-party dependency
Risk Level: MediumThe skill directs the agent to install the latest available release of the IGA Pages CLI globally:
bash npm i -g @iga-pages/cli@latestThe functions documentation similarly recommends a global installation without an exact version:
bash npm i -g @iga-pages/cli iga pages devTechnical Analysis
The package version is resolved dynamically from the npm registry at execution time. Consequently, the code installed and executed may differ from the code that existed when this skill was audited. The global installation also permits npm package lifecycle scripts to run under the invoking user's privileges and makes the installed executable available outside the audited project.
Although the package name is consistent throughout the documentation and there is no evidence that the current package is malicious, using
@latestor omitting the version creates a supply-chain trust boundary that is not reproducible or integrity-verified. A compromised npm account, registry response, or future malicious release could introduce arbitrary install-time or runtime behavior.Attack Path
- An attacker compromises the npm publisher account, package distribution process, or another component of the package supply chain.
- The attacker publishes a malicious release under
@iga-pages/cliand makes it the latest version. - The agent follows the skill instructions and runs
npm i -g @iga-pages/cli@latestornpm i -g @iga-pages/cli. - npm downloads the mutable release and may execute its lifecycle scripts during installation.
- The installed global
igaexecutable subsequently runs attacker-controlled code when the agent performs authentication, linking, environment management, or deploymen ...[truncated 762 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the CLI to an exact, reviewed version rather than using
@latest, for example:bash npm install --save-dev --save-exact @iga-pages/cli@1.1.0 - Prefer a project-local development dependency invoked through
npm execor an npm script instead of a global installation. - Commit a lockfile and use
npm ciso dependency resolution is reproducible. - Verify package provenance and registry integrity before installation. Where supported, validate package signatures, attestations, and expected integrity hashes.
- Review version upgrades separately before changing the pinned version.
- Disable npm lifecycle scripts with
--ignore-scriptswhen the CLI does not require them, or explicitly review all lifecycle scripts before allowing their execution. - Update both
SKILL.mdandreferences/functions.mdso they provide one consistent, pinned installation procedure.
- Pin the CLI to an exact, reviewed version rather than using
