Back to skill

Security audit

Scrapling Web Scraping

Security checks for vulnerabilities and agentic risk

Overview

This web-scraping skill is openly designed to bypass anti-bot protections, which makes it a Review item even though I did not find hidden malware or persistence.

Install only if you have authorization to scrape the target sites and are comfortable with a tool intended for stealth scraping and Cloudflare/anti-bot bypass. Use an isolated virtual environment or container under an unprivileged account, avoid authenticated or sensitive URLs unless necessary, and consider pinning reviewed Scrapling and browser component versions before use.

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:19
Finding
Unpinned Third-Party Package and Browser Component Installation## Vulnerability Details **File Location**: `SKILL.md`, lines 19–20 **Vulnerability Type**: Supply-chain exposure through unpinned executable dependencies **Risk Level**: Medium **Complete Code Snippet**: ```bash pip install "scrapling[all]" scrapling install ``` ### Technical Analysis The documented setup process installs the latest available release of `scrapling` with all optional dependencies and then invokes the package's installation command to download additional browser components. Neither exact package versions nor artifact hashes are specified. Consequently, the code and browser artifacts installed at setup time can differ from those present when this skill was audited. The broad `[all]` extra also increases the number of transitive dependencies and therefore expands the supply-chain attack surface. The audit found no evidence that the currently referenced package is malicious; the issue is the absence of reproducible, integrity-verified dependency controls. ### Attack Path 1. An attacker compromises the upstream package, one of its transitive dependencies, its distribution account, or a browser-component distribution channel. 2. The attacker publishes or substitutes a malicious artifact under a version accepted by the unrestricted installation commands. 3. A user follows the documented Quick Start and runs `pip install "scrapling[all]"`. 4. The malicious package or dependency is installed and may execute code through package installation behavior or when imported by `scrapling_tool.py`. 5. The user runs `scrapling install`, which obtains additional unpinned components and may execute package-controlled installation logic. 6. Attacker-controlled code runs with the privileges of the user performing installation or invoking the skill. ### Impact Assessment Successful supply-chain compromise could permit arbitrary code execution under the installing user's account. This could expose files, environment variab ...[truncated 395 chars]
Remediation
## Remediation Suggestions 1. Pin `scrapling` and every transitive Python dependency to reviewed, exact versions in a lockfile. 2. Require cryptographic hashes for downloaded Python distributions, such as by using `pip install --require-hashes -r requirements.txt`. 3. Pin browser components to reviewed versions and verify their checksums or signatures before installation. 4. Document the trusted package indexes and artifact origins; disable untrusted or supplemental indexes to reduce dependency-confusion risk. 5. Install dependencies inside an isolated virtual environment or container under a dedicated, unprivileged account. 6. Avoid running package or browser installation commands as root. 7. Periodically scan the lockfile and downloaded artifacts for known vulnerabilities, and review all version updates before changing the pins. 8. Consider replacing the broad `[all]` extra with only the features required by the selected scraping modes, reducing the transitive attack surface.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (5)

Natural-Language Policy Violations

High
Confidence
98% confidence
Finding
The skill description explicitly advertises bypassing Cloudflare, anti-bot detection, and operating in 'stealth' or 'undetectable' modes. In the context of an agent skill, this is dangerous because it facilitates evasion of website access controls and can be used to automate collection from protected sites without authorization, increasing legal, abuse, and platform-security risk.

Lp3

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding
The skill performs network scraping against arbitrary third-party URLs, including stealth and anti-bot bypass modes, but declares no explicit tool scope or permissions. In an agent environment, this creates an authorization gap where users may not receive clear consent boundaries for outbound requests, increasing the risk of unintended access, data exfiltration, or misuse of the skill for probing external sites.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill documentation promotes scraping and bypassing protections on external websites but does not clearly warn users that it will send requests to third-party services, potentially expose IP/browser fingerprints, download remote content, and process site data. This omission is more concerning here because the skill explicitly emphasizes stealth and anti-bot evasion, which can increase legal, privacy, and operational risk for users.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The tool explicitly supports stealth scraping and optional Cloudflare-solving behavior, but it provides no user-facing warning, consent gate, or policy constraint around these sensitive capabilities. In the context of an agent skill, this increases the risk of undisclosed access to protected sites, bypass of operator expectations, and misuse against targets that rely on anti-bot controls.

Natural-Language Policy Violations

Low
Confidence
80% confidence
Finding
Natural-language strings in this tool are split between Chinese and English, including the module description and installation error message in Chinese while command-line descriptions are in English. This can create an implicit language policy issue because the user is not offered a language choice or a documented locale constraint.

Static analysis

No suspicious patterns detected.