Back to skill

Security audit

Scrapfly Browser

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a Scrapfly cloud-browser guide, but its optional BYOP instructions tell users to run an unverified remote installer that can route browser traffic through their own internal network.

Review this skill carefully before installing. The ordinary Scrapfly Cloud Browser examples are purpose-aligned, but do not use the BYOP connector commands unless you trust the installer source, have network-owner approval, can isolate the host, and have a verified install and uninstall process. Use environment variables or a secrets manager for credentials and avoid reusing authenticated sessions beyond the intended task.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:365
Finding

Unverified Remote Installer Executed Directly by a Shell

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 365–368
Vulnerability Type: Remote payload retrieval and execution
Risk Level: High

Vulnerable Code

sh
# One-liner. Auto-detects OS/arch, downloads binary + 7-day cert, unpacks under ~/.scrapfly/byop
curl -fsSL "https://scrapfly.io/install/byop-connector.sh?api_key=YOUR_API_KEY" | sh

# Or via the CLI (same end state)

Technical Analysis

The installation command downloads a remotely hosted shell script and sends it directly to sh. The script is not pinned to an immutable version or content digest, and the instructions do not require cryptographic signature or checksum verification. Consequently, the effective code executed by users can change after this Skill has been reviewed.

HTTPS protects the transfer in transit but does not establish that future content served by the endpoint is safe. Compromise of the service, installer endpoint, or applicable trust infrastructure—or an intentional server-side payload change—could cause arbitrary commands to execute under the invoking user's account.

Piping directly to a shell also prevents meaningful review of the retrieved script before execution. The documentation states that the script detects the operating system and architecture, downloads a binary and a seven-day certificate, and installs them beneath ~/.scrapfly/byop; however, neither the script nor the resulting binary is included in the project, so their behavior cannot be audited from this artifact.

The API key is included in the URL query string. Such URLs may be recorded in service-side access logs or other HTTP telemetry, increasing the chance of credential exposure.

This execution channel exceeds the minimum privileges required for the Skill's principal cloud-browser functionality. Connecting to the documented WebSocket API only requires a client dependency and an API key; arbitrary remote shell execution is only associated with the optional BYOP connector. The c ...[truncated 1899 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove the curl | sh installation pattern.
  2. Publish versioned, immutable installer and binary artifacts rather than serving mutable content from an unversioned endpoint.
  3. Require a staged installation process:
    • Download the installer or package to a local file.
    • Verify a documented SHA-256 digest.
    • Verify a cryptographic signature against a separately distributed, trusted public key.
    • Allow the user to inspect the installer before execution.
    • Execute the verified local artifact explicitly.
  4. Prefer a reputable package repository with signed metadata and pinned versions where practical.
  5. Do not transmit API keys in URL query strings. Use a protected environment variable, standard input, an authenticated CLI flow, or an authorization header while ensuring the secret is not written to logs.
  6. Document the connector's exact files, permissions, executable behavior, update mechanism, certificate storage, network destinations, lifecycle, and uninstall procedure.
  7. Run the connector under a dedicated, minimally privileged account and isolate it using applicable sandboxing, filesystem restrictions, and network egress controls.
  8. Require explicit user consent before enabling BYOP traffic, and restrict the connector so it cannot reach internal destinations beyond those necessary for the approved workflow.
  9. Clearly separate this optional high-trust connector installation from the core cloud-browser setup, which does not require remote shell execution.
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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

External Script Fetching

High
Category
Supply Chain
Confidence
99% confidence
Finding

The documented one-liner fetches a remote script and immediately executes it with shell privileges, while also embedding the API key in the URL. This creates a classic supply-chain and remote-code-execution risk: any compromise of the hosting endpoint, transport, or script content results in arbitrary code execution on the customer's machine, potentially exposing credentials and internal network access.

Content

Scanner excerpt · SKILL.md (reported line 367)May include surrounding context.

sh
# One-liner. Auto-detects OS/arch, downloads binary + 7-day cert, unpacks under ~/.scrapfly/byop
curl -fsSL "https://scrapfly.io/install/byop-connector.sh?api_key=YOUR_API_KEY" | sh

# Or via the CLI (same end state)
scrapfly exit-peer install

Chaining Abuse

High
Category
Tool Misuse
Confidence
98% confidence
Finding

The | sh construct turns downloaded content directly into executed shell commands, eliminating any opportunity for review and making command chaining abuse trivial. In the context of a skill that already discusses routing traffic through customer infrastructure, this becomes especially dangerous because successful exploitation can yield code execution on a sensitive internal host.

Content

Scanner excerpt · SKILL.md (reported line 367)May include surrounding context.

sh
# One-liner. Auto-detects OS/arch, downloads binary + 7-day cert, unpacks under ~/.scrapfly/byop
curl -fsSL "https://scrapfly.io/install/byop-connector.sh?api_key=YOUR_API_KEY" | sh

# Or via the CLI (same end state)
scrapfly exit-peer install

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The login-flow example normalizes entering credentials and the persistent-session example shows reusing authenticated state, but the documentation does not warn about secret handling, avoiding hardcoded credentials, session fixation/reuse risks, or using production accounts. In an agent context, this can encourage unsafe handling of real usernames, passwords, and active authenticated sessions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The BYOP section materially expands the skill from remote cloud-browser automation into installing and operating a local network egress connector inside the customer's environment. That creates a new trust boundary and enables agent-guided access from a cloud automation workflow into allow-listed corporate or sensitive networks, which is substantially riskier than the stated Playwright-over-cloud-browser use case.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The skill states it can download files through browser interactions and provides a screenshot example that writes screenshot.png, but there is no user-facing warning that these actions create local artifacts. For markdown-scoped warning checks, behaviors affecting user data or system state should be disclosed clearly.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.