T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:16- Finding
Unverified Remote Installer Is Downloaded and Executed Directly
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent Bright Data CLI guide, but it recommends high-impact unverified installers and floating package execution that users should review before installing.
Review this skill before installing. Prefer a pinned, verified Bright Data CLI installation method instead of curl-to-bash or floating npx commands, authenticate only on machines you trust, know that credentials may persist locally, and avoid sending secrets, private/internal URLs, or sensitive personal data through Bright Data unless you have authorization.
SKILL.md:16Unverified Remote Installer Is Downloaded and Executed Directly
SKILL.md:21Unpinned npm and npx Commands Execute Mutable Third-Party Package Code
The documentation instructs users to fetch a remote script with curl and pipe it directly to bash, causing arbitrary code from the network to execute immediately without prior inspection. If the remote host, distribution channel, TLS trust chain, or script content is compromised, users may run attacker-controlled commands on their machine.
macOS / Linux:
curl -fsSL https://cli.brightdata.com/install.sh | bash
Windows or manual install (any platform):
Piping curl output directly into bash is a classic chaining-abuse pattern because it combines retrieval and execution into a single opaque step, preventing review of the downloaded content. In a skill intended for agent guidance, this is especially risky because users may copy-paste the command verbatim and execute arbitrary shell logic from an external source.
macOS / Linux:
curl -fsSL https://cli.brightdata.com/install.sh | bash
Windows or manual install (any platform):
The troubleshooting section repeats the remote-script installation pattern, reinforcing unsafe behavior and making accidental use more likely. Repetition in multiple sections increases the probability that users will adopt direct network-to-shell execution without scrutiny.
| Error | Fix |
|-------|-----|
| CLI not found | Install with `npm i -g @brightdata/cli` or `curl -fsSL https://cli.brightdata.com/install.sh \| bash` |
| "No Web Unlocker zone specified" | `bdata config set default_zone_unlocker <zone>` or re-run `bdata login` |
| "Invalid or expired API key" | `bdata login` |
| "Access denied" | Check zone permissions in the Bright Data control panel |
curl -fsSL https://cli.brightdata.com/install.sh | bash fetches and executes an external script in one step, giving the remote source direct code execution on the host. In an agent skill context, this is especially risky because users may copy/paste trusted-looking setup commands without reviewing them.
# macOS / Linux
curl -fsSL https://cli.brightdata.com/install.sh | bash
# Any platform
npm install -g @brightdata/cli
The | bash construct is a command-chaining pattern that directly passes remote content into a shell, magnifying the danger of any compromise in the fetched content. In a skill meant for terminal use, such patterns are more dangerous because they normalize opaque execution paths for users and downstream agents.
# macOS / Linux
curl -fsSL https://cli.brightdata.com/install.sh | bash
# Any platform
npm install -g @brightdata/cli
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
**What happens on login:**
1. Opens browser for OAuth (or uses device flow / direct API key)
2. Validates the API key
3. Saves credentials locally (`~/.config/brightdata-cli/credentials.json`)
4. Checks for required zones (`cli_unlocker`, `cli_browser`)
5. Creates missing zones automatically
6. Sets `cli_unlocker` as default zone if none configured
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
**What happens on login:**
1. Opens browser for OAuth (or uses device flow / direct API key)
2. Validates the API key
3. Saves credentials locally (`~/.config/brightdata-cli/credentials.json`)
4. Checks for required zones (`cli_unlocker`, `cli_browser`)
5. Creates missing zones automatically
6. Sets `cli_unlocker` as default zone if none configured
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
| Flag | Description |
|---|---|
--skip-auth | Skip the authentication step |
-k, --api-key <key> | Provide API key directly |
The trigger description is extremely broad, covering nearly any web scraping, search, or data collection request, which can cause the skill to activate in situations beyond the user's precise intent. Overbroad activation increases the chance that risky commands, credentialed workflows, or third-party tooling guidance are introduced unnecessarily into unrelated sessions.
The skill recommends one-off execution via npx without pinning an exact package version, which allows whatever version is current at execution time to run. If the package is compromised upstream or a breaking/malicious release is published, users could execute unreviewed code directly on their system.
The login section states that the API key is saved locally and that setup becomes automatic, but it does not warn users where credentials are stored, how they are protected, or the implications on shared/multi-user systems. This can lead users to authenticate on insecure hosts or leave persistent credentials behind without understanding the exposure.
The documentation instructs users to pipe a remotely fetched script directly into bash without any warning or verification step. This is dangerous because it executes network-delivered code immediately, so any compromise of the hosting domain, transport, or script contents results in arbitrary code execution.
Using npx --yes --package @brightdata/cli brightdata <command> without pinning an exact version allows whatever package version is current at execution time to run. This creates a supply-chain risk: a compromised maintainer account, malicious release, or breaking change could execute unexpected code on the user's machine.
Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.
| Flag | Description |
|---|---|
--skip-auth | Skip the authentication step |
-k, --api-key <key> | Provide API key directly |
The documentation explains that pipeline commands trigger remote API requests and poll Bright Data endpoints, but it does not clearly warn that supplied URLs, search terms, names, and other parameters are transmitted to a third-party service. In a terminal-agent skill focused on scraping and data collection, this omission can cause users to unknowingly send sensitive targets, queries, or personal data off-host, creating privacy, confidentiality, and compliance risk.
This markdown file includes a -o product.json example that writes output to disk, which can affect local user data. Under the markdown-specific warning criterion, there is no accompanying note about file creation or overwrite behavior.
No suspicious patterns detected.