T08 · Insecure Dependencies
- Location
SKILL.md:27- Finding
Mutable Third-Party npm Package Is Downloaded and Executed Without Review
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 27-34
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code:
markdown If you haven't installed yet, one command sets up both the CLI tools (for live web work) and the build skills (for app integration): ```bash npx -y firecrawl-cli@latest init --all --browserThis installs the Firecrawl CLI, the CLI skills, and these build skills together. It also opens browser auth so the human can sign in or create an account.
text ### Technical Analysis The documented command downloads and immediately executes the npm package selected by the mutable `latest` distribution tag. The `-y` option automatically accepts npm prompts, reducing the opportunity for the user to inspect or reject the selected package version. Because the package version and content can change after this skill has been reviewed, the effective code executed by the command is not fixed by the audited repository. The broad `init --all --browser` operation installs CLI tooling and additional skills and starts a browser authentication process. An attacker who compromises the npm package, its publisher account, or its release process could therefore substitute malicious package code. That code would execute with the permissions of the user running `npx`. ### Attack Path 1. An attacker compromises the `firecrawl-cli` npm package, a maintainer account, or the package release pipeline. 2. The attacker publishes a malicious release and assigns it to the `latest` tag. 3. A user or agent follows the installation instructions in `SKILL.md`. 4. `npx -y` downloads the attacker-controlled release and executes it without an interactive package-approval step. 5. The malicious package accesses or modifies resources available to the invoking account, such as project files, environment variables, credentials, or user-level configuration. This path depends on co ...[truncated 711 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestwith an exact, reviewed package version, for examplefirecrawl-cli@X.Y.Z. - Verify the selected release through a committed lockfile and package integrity metadata where the installation workflow supports them.
- Remove
-ywhere practical so users can review the package and version before execution. - Separate minimum CLI installation from optional operations such as installing all skills and opening browser authentication, allowing users to grant only the functionality required.
- Document the expected package publisher, registry, version, and integrity value so unexpected package resolution can be detected.
- Execute onboarding tooling in a restricted environment with only the necessary project and credential access.
- Establish a controlled update process in which newer package versions are reviewed before the pinned version is changed.
- Replace
