Back to skill

Security audit

Firecrawl Build Onboarding

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent Firecrawl onboarding helper, but its install step runs a mutable third-party package and bulk-installs tooling/skills, so users should review it before installing.

Before installing, verify the Firecrawl CLI package and consider pinning a known version instead of using `@latest`. Run the installer only in a project context you are comfortable modifying, review what `init --all --browser` adds, and keep any `.env` file out of version control and logs. Prefer a project or platform secret manager when available.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
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: Medium

Vulnerable 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 --browser

This 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

  1. Replace @latest with an exact, reviewed package version, for example firecrawl-cli@X.Y.Z.
  2. Verify the selected release through a committed lockfile and package integrity metadata where the installation workflow supports them.
  3. Remove -y where practical so users can review the package and version before execution.
  4. Separate minimum CLI installation from optional operations such as installing all skills and opening browser authentication, allowing users to grant only the functionality required.
  5. Document the expected package publisher, registry, version, and integrity value so unexpected package resolution can be detected.
  6. Execute onboarding tooling in a restricted environment with only the necessary project and credential access.
  7. Establish a controlled update process in which newer package versions are reviewed before the pinned version is changed.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Credential Access

High
Category
Privilege Escalation
Confidence
60% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · references/auth-flow.md (reported line 38)May include surrounding context.

Step 4: Save the key

bash
echo "FIRECRAWL_API_KEY=fc-..." >> .env

Rp1

Medium
Category
MCP Rug Pull
Confidence
92% confidence
Finding

The skill instructs users to execute npx -y firecrawl-cli@latest init --all --browser, which pulls and runs the latest published package at execution time rather than a reviewed, fixed version. If the npm package is compromised, typo-squatted, or a malicious update is published, this onboarding step becomes a supply-chain execution vector with immediate code execution on the user's machine.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding

npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill tells users to place FIRECRAWL_API_KEY into .env but does not warn that the file must be kept out of version control, logs, screenshots, and client-side bundles. In an onboarding skill focused on credential setup, omission of basic secret-handling guidance materially increases the chance of accidental credential exposure and subsequent unauthorized API use.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill instructs saving a live API credential directly into a local .env file without warning the user about secure storage, file permissions, or the risk of accidental commit/exposure. In onboarding context this is common practice, but it still creates a real secret-handling weakness because users may persist credentials insecurely by default.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.