Back to skill

Security audit

free_google_search_with_browser

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent Google-search helper that opens a visible browser and sends the user's query to Google, with some install and privacy cautions but no artifact-backed malicious behavior.

Install only in an isolated environment you are comfortable using for live web browsing. Expect it to open a visible browser, send search queries to Google, download browser/dependency artifacts during setup, and create a local scrapling_storage.db file. Avoid sensitive queries unless you accept that exposure, and prefer pinned dependencies before production 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
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Permit Unreviewed Supply-Chain Updates

Content
View full analysis
=0.4.2 curl_cffi>=0.14.0 playwright>=1.58.0 patchright>=1.58.2 msgspec>=0.20.0 browserforge>=1.2.4 ``` `SKILL.md:24-28`: ```bash To install dependencies: ```bash pip install -r requirements.txt playwright install # Required for browser automation. If slow, consider downloading manually. ``` ``` ### Technical Analysis Every Python dependency uses an open-ended minimum-version constraint. Consequently, `pip install -r requirements.txt` may install future releases that were not available or reviewed when this Skill was audited. The dependency graph is also not locked, so compatible transitive dependencies can change independently. The separate `playwright install` command downloads executable browser artifacts without documenting a pinned browser revision, integrity verification process, or trusted artifact policy. While downloading dependencies is necessary to install the declared search functionality, allowing versions and executable artifacts to vary exceeds the minimum reproducibility needed for that functionality. This is a supply-chain weakness rather than evidence that the currently named packages are malicious. Exploitation requires compromise of a package, maintainer account, distribution channel, dependency resolution path, or downloaded browser artifact. ### Attack Path 1. An attacker compromises the release process or distribution account of a listed direct dependency, one of its transitive dependencies, or a browser artifact source. 2. The attacker publishes a malicious version satisfying the open-ended constraints, such as a version newer than `scrapling 0.4.2`. 3. A user follows `SKILL.md` and executes `pip install -r requirements.txt` or `playwright in ...[truncated 1023 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (12)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
96% confidence
Finding

The skill clearly performs live network access to Google, but the manifest does not declare any tool scope or permission boundary for that capability. This is dangerous because the agent may invoke external network activity without explicit policy visibility, review, or user consent controls, increasing the chance of unintended data disclosure or unauthorized browsing behavior.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The invocation description says to use the skill when the user asks to 'search Google or find information online,' which is broad enough to trigger on many unrelated requests. Overly broad activation increases the risk that the agent will launch a browser and contact external services unexpectedly, potentially exposing prompts, queries, or browsing activity without the user understanding that this specific skill is being used.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill documentation describes browser automation and structured search, but it does not prominently warn users that it launches a visible browser window and sends live requests to Google. This lack of disclosure is risky because users may unintentionally reveal sensitive queries or be surprised by UI/browser side effects in their environment.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill explicitly enables anti-bot/captcha evasion by calling the fetcher with solve_cloudflare=True and using a stealth-oriented browser fetcher for a basic Google search workflow. That exceeds what is necessary for ordinary search functionality and can facilitate bypass of site protections, increasing legal, abuse, and policy risk if reused against other targets or if Google presents protective challenges.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The code silently configures persistent local storage in scrapling_storage.db without disclosure or controls. Even if intended for scraper state, this can leave behind browsing/session artifacts on disk, create privacy or forensic concerns, and cause unexpected file writes in environments that assume the skill is read-only.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The dependency is specified with a lower bound only, which allows future builds to resolve to different versions over time. This weakens supply-chain integrity and reproducibility, and can unexpectedly introduce vulnerable or breaking releases into a skill that performs web access.

Content

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

text
scrapling>=0.4.2
curl_cffi>=0.14.0
playwright>=1.58.0
patchright>=1.58.2

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
99% confidence
Finding

The curl_cffi dependency is unpinned, so installations may pull in different versions, including versions affected by known advisories. Because this skill performs external web requests and browser-like behavior, an unsafe curl_cffi release could increase exposure to SSRF or bundled libcurl vulnerabilities.

Content

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

text
scrapling>=0.4.2
curl_cffi>=0.14.0
playwright>=1.58.0
patchright>=1.58.2
msgspec>=0.20.0

Unverifiable Dependency: curl_cffi has 3 known advisory(ies) (GHSA-3vpc-4p9p-47hc (curl_cffi bundles a version of libcurl affected by High Severity vulnerability); CVE-2026-33752 (curl_cffi: Redirect-based SSRF leads to internal network access in curl_cffi (wi); CVE-2026-33752 (curl_cffi: Redirect-based SSRF leads to internal network access in curl_cffi (wi)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
98% confidence
Finding

The manifest does not pin curl_cffi, and the package has known advisories including a redirect-based SSRF issue and bundled libcurl exposure. In a skill designed to search the web and fetch remote content, that context makes the risk more relevant because attacker-controlled URLs or redirects could potentially be leveraged to reach internal resources or vulnerable network paths.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

An unpinned playwright dependency permits non-reproducible installs and unreviewed upstream changes. In a browser automation skill, that can introduce unexpected security or stability regressions without any source-code change in the skill itself.

Content

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

text
scrapling>=0.4.2
curl_cffi>=0.14.0
playwright>=1.58.0
patchright>=1.58.2
msgspec>=0.20.0
browserforge>=1.2.4

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The patchright package is unpinned, creating supply-chain risk from version drift and making it hard to verify which code is installed. Given that this package appears related to browser automation/patching, unexpected upstream changes could materially alter security-sensitive browser behavior.

Content

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

text
scrapling>=0.4.2
curl_cffi>=0.14.0
playwright>=1.58.0
patchright>=1.58.2
msgspec>=0.20.0
browserforge>=1.2.4

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

msgspec is also unpinned, so builds are not deterministic and may silently consume newer versions. While this is lower risk than a networking library, it still contributes to supply-chain uncertainty and can introduce vulnerabilities or incompatible behavior.

Content

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

text
curl_cffi>=0.14.0
playwright>=1.58.0
patchright>=1.58.2
msgspec>=0.20.0
browserforge>=1.2.4

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

browserforge is unpinned, which allows unnoticed version changes in a package likely involved in browser fingerprinting or emulation. In a skill that launches a browser and accesses online content, that increases supply-chain and behavioral risk, especially if the dependency changes stealth or network-handling features.

Content

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

text
playwright>=1.58.0
patchright>=1.58.2
msgspec>=0.20.0
browserforge>=1.2.4

Static analysis

No suspicious patterns detected.