Back to skill

Security audit

Web Researcher Mini

Security checks for vulnerabilities and agentic risk

Overview

This skill performs web scraping through external tools, but it includes unsafe command examples, under-disclosed third-party data handling, and installation/authentication steps that need careful review.

Install only if you are comfortable sending target URLs and extracted content to Firecrawl and, for the bundled summarize workflow, potentially to AI providers or Apify. Avoid using it on confidential, internal, regulated, or proprietary material unless approved. Do not run the documented batch xargs/sh command on untrusted URL lists, avoid sudo npm install, prefer pinned/local installs, and store API keys in a proper secret manager rather than shell profiles.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (6)

T09 · Insecure Skill Coding Practices

Error
Location
SKILL.md:267
Finding

Shell Command Injection Through Untrusted URL Interpolation

Content
View full analysis
Remediation
View remediation
&2; exit 1 ;; esac name=$(printf "%s" "$url" | md5) firecrawl scrape "$url" -o ".firecrawl/$name.md" ' sh "{}" < urls.txt ``` Where available, prefer a small script using an argument-safe process execution API rather than invoking a shell. ]]>

T09 · Insecure Skill Coding Practices

Error
Location
firecrawl-skills/SKILL.md:267
Finding

Shell Command Injection Through Untrusted URL Interpolation in Mirrored Skill

Content
View full analysis
Remediation
View remediation
&2; exit 1 ;; esac name=$(printf "%s" "$url" | md5) firecrawl scrape "$url" -o ".firecrawl/$name.md" ' sh "{}" < urls.txt ``` The repaired command should be applied consistently to both copies of the Skill. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding

Unpinned Global Installation of Firecrawl CLI

Content
View full analysis
Remediation
View remediation
`. - Verify package provenance, publisher identity, signatures, and integrity hashes. - Prefer a project-local installation governed by a lockfile instead of a global installation. - Disable lifecycle scripts during installation when they are not required. - Document the expected package source and approved version. - Require user confirmation before installing or upgrading executable dependencies. ]]>

T08 · Insecure Dependencies

Warning
Location
firecrawl-skills/rules/install.md:12
Finding

Unpinned Firecrawl Dependency and Dynamic npx Execution

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Warning
Location
summarize/SKILL.md:5
Finding

Unpinned Third-Party Homebrew Tap for Summarize CLI

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Note
Location
firecrawl-skills/rules/install.md:54
Finding

API Key Exposure Through Command Arguments and Plaintext Shell Profiles

Content
View full analysis
" ``` Or set the environment variable: ```bash export FIRECRAWL_API_KEY="" ``` Tell them to add this export to `~/.zshrc` or `~/.bashrc` for persistence, then retry the original command. ``` ### Technical Analysis The instructions encourage inserting an API key directly into a command and persisting it as plaintext in a general-purpose shell profile. Command-line secrets may be recorded in shell history and can be exposed through process inspection while the command is executing. Shell profiles are commonly included in backups, diagnostic archives, or dotfile repositories and may have permissions broader than a dedicated credential store. Exporting the key also makes it available to all child processes launched from that shell. ### Attack Path 1. A user supplies a valid Firecrawl API key. 2. The Agent places the key directly in a command or shell profile as instructed. 3. The key remains in shell history, a plaintext profile, process metadata, backups, or a dotfile repository. 4. Another local process, user, backup recipient, or repository reader obtains the key. 5. The attacker reuses the credential against the Firecrawl service. ### Impact Assessment Exposure may permit unauthorized use of the victim's Firecrawl account, consumption of paid credits, access to account metadata available to the key, and activity attributed to the victim. This issue does not directly disclose unrelated credentials, but compromise may extend to all Firecrawl resources authorized by the key. ]]>
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (14)

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README materially overstates the skill’s capabilities by presenting it as an AI summarization and report-generation agent rather than a narrower scraping/crawling CLI. This can cause users or upstream agents to invoke the skill for broader autonomous research tasks than intended, increasing the chance of unsafe data handling, unexpected external transmission, or misuse of outputs in automated workflows.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description omits a user-facing warning that webpage URLs and retrieved content may be transmitted to an external Firecrawl service and possibly processed by related infrastructure. Users may unknowingly send sensitive internal URLs, private documents, or proprietary research targets to a third party, creating confidentiality and compliance risks.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The usage description is broad and action-oriented but does not define clear activation constraints, approval boundaries, or limits on what content may be fetched and processed. In agent environments, this ambiguity can enable over-collection of third-party content or autonomous use beyond user intent, especially when combined with claims of one-click research and report generation.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill directs the agent to run firecrawl login --browser, which opens an interactive browser authentication flow and transmits credentials or tokens to an external service. This exceeds passive scraping behavior and can trigger external side effects and account linkage without an explicit user-approved authentication step.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill instructs the agent to modify local workspace state by creating a .firecrawl/ directory and editing .gitignore as a default behavior, even though the core purpose is web scraping/search. Unnecessary persistent filesystem changes can affect repositories, alter version-control behavior, and create side effects outside the user’s explicit request.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill directs the agent to create a .firecrawl/ directory and modify .gitignore automatically, but it does not require notifying the user or obtaining consent before changing the workspace. Silent filesystem changes can violate user expectations, alter repository state, and potentially hide generated artifacts from version control without explicit approval.

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.

Session Persistence

Medium
Category
Rogue Agent
Confidence
60% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · firecrawl-skills/rules/install.md (reported line 87)May include surrounding context.

bash
# Option 1: Fix npm permissions (recommended)
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
# Add the export to your shell profile

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
95% confidence
Finding

The skill explicitly suggests sudo npm install -g firecrawl-cli, which executes package installation scripts with root privileges. If the package or one of its dependencies is compromised, this can lead to full system compromise, and agent users may copy-paste the command without appreciating the risk despite the 'not recommended' note.

Content

Scanner excerpt · firecrawl-skills/rules/install.md (reported line 92)May include surrounding context.

export PATH=~/.npm-global/bin:$PATH

Add the export to your shell profile

Option 2: Use sudo (not recommended)

sudo npm install -g firecrawl-cli

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
94% confidence
Finding

This is the same privileged install guidance repeated in the rendered block, again instructing users to run npm as root. Repetition increases the chance an agent or user treats it as an endorsed remediation path, magnifying the risk of arbitrary code execution as root through npm lifecycle scripts.

Content

Scanner excerpt · firecrawl-skills/rules/install.md (reported line 93)May include surrounding context.

Add the export to your shell profile

Option 2: Use sudo (not recommended)

sudo npm install -g firecrawl-cli

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill encourages users to summarize URLs, local files, PDFs, images, audio, and YouTube links while documenting multiple external model providers and fallback extractors, but it never warns that submitted content may be transmitted to those third parties. This creates a real confidentiality and privacy risk because users may send sensitive local documents or restricted web content to external services without informed consent.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly advertises optional Firecrawl and Apify integrations for blocked sites and YouTube fallback, but it does not disclose that enabling these services can share fetched content or request metadata with additional third parties. In a scraping/summarization context, this omission is more dangerous because users may assume all processing is local or limited to their selected model provider when in fact extra providers may receive the data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documentation recommends automatic browser-based authentication without a clear warning that a browser will open and that authentication data will be exchanged with a third-party service. This weakens informed consent and can surprise users in restricted or sensitive environments.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The authentication guidance instructs running firecrawl login --browser, which automatically opens a browser, without warning the user about this side effect. Unexpected browser launches can disrupt user workflows and may trigger authentication actions or expose session-related behavior without informed consent.

Content

No source excerpt is available for this finding.