Back to skill

Security audit

FlowCrawl — Stealth Web Scraper That Bypasses Everything

Security checks for vulnerabilities and agentic risk

Overview

This skill openly builds a stealth crawler for bypassing bot protections, but its broad scope, silent escalation, and weak guardrails require careful review before use.

Install only for crawling sites you own or are explicitly authorized to test. Expect automatic escalation to stealth and browser-based fetching, possible collection of sensitive page content, and local output files during deep crawls; use an isolated environment, pin dependencies, and avoid running it against protected third-party sites without permission.

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
requirements.txt:1
Finding

Unpinned Third-Party Dependency Permits Unreviewed Supply-Chain Updates

Content
View full analysis
=0.4.0 ``` `SKILL.md:13-16`: ```bash ```bash pip install scrapling ``` ``` `README.md:69-72`: ```bash # Install Scrapling pip install scrapling ``` ### Technical Analysis The project permits any Scrapling release equal to or newer than version 0.4.0. Its documented installation commands do not specify a version or validate package hashes. Consequently, installation results depend on whichever package version the package index serves at that time rather than on a reviewed, reproducible dependency set. The application imports and executes the dependency directly: ```python from scrapling import Fetcher, StealthyFetcher, DynamicFetcher ``` It subsequently invokes all three imported fetcher implementations. A compromised upstream account, malicious future release, package-index compromise, or dependency-resolution attack could therefore introduce attacker-controlled behavior without any modification to this repository. This finding does not establish that the current Scrapling package is malicious. The vulnerability is the project's unrestricted trust in future, unreviewed package versions and lack of integrity verification. ### Attack Path 1. An attacker compromises the upstream package, its publishing credentials, or a package distribution channel and publishes a malicious version satisfying `>=0.4.0`. 2. A user follows the documented `pip install scrapling` instruction or installs from `requirements.txt`. 3. The package resolver selects the malicious or compromised release because no exact version or hash is required. 4. The malicious dependency executes during an applicable installation hook or when `flowcrawl.py` imports and invokes S ...[truncated 775 chars]
Remediation
View remediation
``` 2. Generate a lock file containing cryptographic hashes and install with hash enforcement, for example: ```bash pip install --require-hashes -r requirements.txt ``` 3. Pin and hash transitive dependencies as well, using a reproducible dependency-management tool such as `pip-tools`, Poetry, or uv. 4. Update `SKILL.md` and `README.md` so users install from the reviewed lock file rather than running an unconstrained `pip install scrapling` command: ```bash python -m pip install --require-hashes -r requirements.txt ``` 5. Configure trusted package indexes explicitly and prevent unintended fallback to untrusted or internal-conflicting indexes. 6. Review dependency updates before changing the lock file. Incorporate automated vulnerability scanning, dependency provenance checks, and controlled update testing into the release process. 7. Recommend installation and execution in an isolated virtual environment under a non-privileged account to reduce the impact of a compromised dependency. ]]>
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (9)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly promotes bypassing Cloudflare, bot detection, and WAFs, yet provides no user-facing warning about legal, ethical, or operational risk. That omission is serious because the core function is anti-protection evasion and large-scale scraping, which can lead to unauthorized access attempts, ToS violations, IP blocking, or downstream abuse.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documented behavior says the tool will detect blocking and 'escalate silently' from plain HTTP to stealth/TLS spoofing and full JS execution. Silent escalation is dangerous because it removes informed user consent at the exact moment the tool shifts into more evasive, resource-intensive, and potentially unauthorized behavior.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The README markets scraping 'any site' and explicitly emphasizes bypassing Cloudflare, bot detection, and WAFs, while only offering a minimal 'responsible use' note later. That combination increases the likelihood of collecting personal, copyrighted, or otherwise sensitive data at scale without clear privacy, consent, retention, or compliance guidance.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The documented commands encourage saving and combining crawled content into local files, but do not clearly warn that scraped data will persist on disk and may contain sensitive or regulated information. In a tool designed for site-wide stealth crawling, silent local persistence materially increases the risk of accidental retention, disclosure, or downstream misuse.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill advertises and operationalizes network access, crawling, and output writing, but declares no explicit tool scope or permission boundaries. In an agent environment, this increases the chance the skill is invoked with broader-than-necessary capabilities and without clear user consent around network requests and filesystem writes.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The description is extremely broad: 'Give it any URL' and 'Use when scraping any website' can cause the agent to select this skill for many unrelated browsing or retrieval tasks. Because the skill is specifically designed to bypass bot protections and WAFs, overbroad triggering materially raises the chance of unsafe or policy-violating use.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The body text 'Scrape any website. Bypass any bot protection. Free.' is broad trigger language with no constraints, safety conditions, or authorization checks. In context, this makes the skill more dangerous because it encourages autonomous selection for adversarial scraping and protection evasion rather than limiting use to legitimate testing or permitted crawling.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This code intentionally implements an escalating fetch pipeline designed to evade anti-bot controls, including TLS spoofing, stealth browser fingerprinting, and full JavaScript execution when blocking is detected. In the context of an agent skill explicitly marketed for bypassing Cloudflare, bot detection, and WAFs, the lack of user warning or authorization checks materially increases the risk of unauthorized scraping, policy circumvention, and outbound data collection from third-party sites.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
91% confidence
Finding

The dependency is specified with a lower bound only, which allows future unreviewed versions of the package to be installed. That creates supply-chain risk: a compromised, vulnerable, or behavior-changing release could be pulled in automatically, and in this skill's context the package is used for stealth scraping and bot/WAF bypass, making unexpected dependency changes more dangerous operationally and from a security perspective.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
scrapling>=0.4.0

Static analysis

No suspicious patterns detected.