T08 · Insecure Dependencies
- Location
SKILL.md:48- Finding
Unpinned Global Installation of a Third-Party CLI
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:48-52
Vulnerability Type: Unpinned third-party dependency installed globally
Risk Level: MediumVulnerable Code
markdown ## Prerequisites 1. **RunComfy CLI** — `npm i -g @runcomfy/cli` 2. **RunComfy account** — `runcomfy login` opens a browser device-code flow. 3. **CI / containers** — set `RUNCOMFY_TOKEN=<token>` instead of `runcomfy login`.Technical Analysis
The installation command retrieves the current version of
@runcomfy/clifrom the configured npm registry without pinning a reviewed version or verifying package integrity or provenance. The-goption installs the package globally and runs npm lifecycle scripts with the invoking user's privileges.This creates a mutable supply-chain boundary: the code installed when a user follows the instructions may differ from the version that existed when the Skill was reviewed. The CLI subsequently handles sensitive resources, including
RUNCOMFY_TOKEN,~/.config/runcomfy/token.json, user prompts, media URLs, generated files, and network requests.The audit cannot verify the documentation's claims about endpoint restrictions, token handling, telemetry, shell-injection resistance, or download limits because the CLI source is not included in the project.
Attack Path
- An attacker compromises the npm package, a maintainer account, the publishing pipeline, or the registry resolution path.
- The attacker publishes a malicious release under the expected
@runcomfy/clipackage name. - A user follows the documented command
npm i -g @runcomfy/cli. - npm resolves and installs the malicious latest release and may execute its lifecycle scripts.
- The malicious package executes with the user's privileges.
- It can read accessible credentials and files, including the RunComfy token, and transmit prompts, media locations, or other data to attacker-controlled infrastructure.
- Because the command performs a global instal ...[truncated 1231 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin the CLI to a specifically reviewed version, for example:
bash npm install --global @runcomfy/cli@<reviewed-version> -
Publish and verify expected package integrity information and provenance, including the official registry, package publisher, release signature, and checksum where supported.
-
Prefer a project-local installation with a lockfile over a global installation, then invoke the pinned binary through an explicit local path or package script.
-
Review npm lifecycle scripts before installation. Where compatible with the package, consider disabling lifecycle scripts during installation and enabling only the explicitly required setup steps.
-
Run the CLI under a dedicated, minimally privileged account or isolated container with access only to the required output directory and credentials.
-
Scope and rotate RunComfy tokens. Avoid exposing unrelated environment variables or home-directory files to the CLI process.
-
Document third-party data handling and obtain user confirmation before submitting sensitive prompts, private audio, or signed media URLs.
-
Include the reviewed CLI source or a verifiable source reference so its endpoint allowlist, token storage, telemetry behavior, URL handling, and download restrictions can be independently audited.
-
