T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Global npm Package Installation Creates a Supply-Chain Execution Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:15-18;references/CLI.md:4-8
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
SKILL.md:15-18:markdown ## Installation ```bash npm install -g @llmskirmish/skirmishtext `references/CLI.md:4-8`: ```markdown ## Installation ```bash npm install -g @llmskirmish/skirmishRequires Node.js 18+.
text ### Technical Analysis The installation instructions retrieve the latest registry release of `@llmskirmish/skirmish` without specifying an exact version, lockfile, integrity hash, or other immutable verification mechanism. The CLI source is also not included in the audited project, so its implementation and npm lifecycle behavior cannot be verified from this artifact. npm packages can define installation lifecycle scripts that execute during installation. Because this command installs a mutable third-party package globally, a compromised publisher account, malicious future release, or compromised dependency could cause code that was not present during this audit to execute on a user's system. The scoped package name is consistent with the declared Skirmish service, and the reviewed files contain no evidence that the package is intentionally malicious or typosquatted. The vulnerability is the unsafe, unpinned supply-chain trust model rather than confirmed malicious package behavior. ### Attack Path 1. An attacker compromises the npm publisher account, package release process, or a transitive dependency used by `@llmskirmish/skirmish`. 2. The attacker publishes a malicious version or introduces malicious lifecycle behavior. 3. A user follows the Skill's documented command, which resolves the package name to the current mutable registry release. 4. npm downloads the compromised package and may execute its lifecycle scripts during global installation. 5. The malicious code runs with the privile ...[truncated 713 chars]- Remediation
View remediation
Remediation Suggestions
-
Pin the dependency to a reviewed exact version, for example:
bash npm install -g @llmskirmish/skirmish@1.0.0 -
Prefer a project-local dependency recorded in
package.jsonand protected by a committed lockfile rather than a global installation. -
Publish and verify package provenance, signatures, or integrity hashes through a trusted release process.
-
Review the package and its transitive dependencies, including all npm lifecycle scripts, before recommending installation.
-
Avoid elevated installation privileges and explicitly warn users not to run the command with
sudoor as an administrator. -
Where operationally feasible, initially install with lifecycle scripts disabled for inspection:
bash npm install --ignore-scripts @llmskirmish/skirmish@1.0.0Lifecycle scripts should only be enabled after confirming that they are necessary and safe.
-
Add automated dependency monitoring and release review so the documented version is updated only after each new release has been assessed.
-
