Back to skill

Security audit

Scraper Builder

Security checks across malware telemetry and agentic risk

Overview

This is an instruction-only Bright Data scraper-building skill with expected external API use, but users should understand it sends target URLs and fetched content to Bright Data.

Install this only if you intend to use Bright Data for scraping. Use scoped API credentials, review generated code before running it, keep validation runs small, set page and concurrency limits, and avoid private, authenticated, internal, or secret-bearing URLs unless you are comfortable sending them through Bright Data.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (12)

Vague Triggers

Medium
Confidence
89% confidence
Finding
The skill description is extremely broad and is designed to trigger on many ordinary requests about obtaining website data. That increases the chance the skill activates in situations where the user did not explicitly request scraping, causing unintended collection or transmission of target URLs and scraped content to Bright Data services.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The guide instructs users to export a Bright Data API key and then send target URLs and retrieved content through a third-party scraping service, but it does not explicitly warn that both credentials and scraped traffic are being transmitted off-box. In a skill designed to help build scrapers, this omission is security-relevant because users may unknowingly expose sensitive targets, proprietary URLs, or regulated content to an external provider.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The guide instructs sending user-supplied target URLs and fetched site content to Bright Data's external API, but it does not disclose that site access details and page data are being transmitted to a third party. In an agent skill context, this is a real privacy and data-governance issue because users may assume analysis happens locally while the skill exfiltrates URLs, page contents, and possibly sensitive query parameters to an external service.

External Transmission

Medium
Category
Data Exfiltration
Content
ZONE = os.environ["BRIGHTDATA_UNLOCKER_ZONE"]

# Fetch raw HTML
response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw"}
Confidence
95% confidence
Finding
This code performs an outbound request to Bright Data and includes the target URL in the JSON payload, causing external transmission of user-requested browsing targets and returned content. In this skill, that behavior is core functionality, but it is still security-relevant because it transfers potentially sensitive browsing or business-intelligence targets to a third-party proxy service.

External Transmission

Medium
Category
Data Exfiltration
Content
html = response.text

# Also fetch as markdown for a quick readable overview
md_response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw", "data_format": "markdown"}
Confidence
95% confidence
Finding
This second outbound request sends the same target URL to Bright Data for markdown conversion, increasing third-party exposure of the target and any retrieved page content. Re-sending content in another format broadens data disclosure without any warning or minimization controls.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
# Example: hitting a discovered API endpoint
api_data = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
Confidence
94% confidence
Finding
The guide recommends sending discovered internal API endpoints through Bright Data as well, which may expose hidden or nonpublic application endpoints, tokens in query strings, or commercially sensitive targets to a third party. In scraper-building context, this materially increases risk because users may probe internal APIs that were never intended to be shared outside the target site and local environment.

External Transmission

Medium
Category
Data Exfiltration
Content
ZONE = os.environ["BRIGHTDATA_UNLOCKER_ZONE"]

# Fetch raw HTML
response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw"}
Confidence
95% confidence
Finding
This code performs an outbound request to Bright Data and includes the target URL in the JSON payload, causing external transmission of user-requested browsing targets and returned content. In this skill, that behavior is core functionality, but it is still security-relevant because it transfers potentially sensitive browsing or business-intelligence targets to a third-party proxy service.

External Transmission

Medium
Category
Data Exfiltration
Content
html = response.text

# Also fetch as markdown for a quick readable overview
md_response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw", "data_format": "markdown"}
Confidence
95% confidence
Finding
This second outbound request sends the same target URL to Bright Data for markdown conversion, increasing third-party exposure of the target and any retrieved page content. Re-sending content in another format broadens data disclosure without any warning or minimization controls.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
# Example: hitting a discovered API endpoint
api_data = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
Confidence
94% confidence
Finding
The guide recommends sending discovered internal API endpoints through Bright Data as well, which may expose hidden or nonpublic application endpoints, tokens in query strings, or commercially sensitive targets to a third party. In scraper-building context, this materially increases risk because users may probe internal APIs that were never intended to be shared outside the target site and local environment.

External Transmission

Medium
Category
Data Exfiltration
Content
# Fetch raw HTML
response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw"}
)
Confidence
90% confidence
Finding
The hardcoded Bright Data endpoint confirms that fetched targets and content are sent off-platform to an external service provider. While not malicious by itself, the skill provides no contextual warning, making the transmission non-transparent from a user-security perspective.

External Transmission

Medium
Category
Data Exfiltration
Content
# Also fetch as markdown for a quick readable overview
md_response = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"zone": ZONE, "url": TARGET_URL, "format": "raw", "data_format": "markdown"}
)
Confidence
90% confidence
Finding
This explicit external endpoint use repeats the third-party transmission for markdown extraction, which can duplicate exposure of target content and metadata. In aggregate, repeated undisclosed egress raises privacy, compliance, and confidentiality concerns.

External Transmission

Medium
Category
Data Exfiltration
Content
```python
# Example: hitting a discovered API endpoint
api_data = requests.post(
    "https://api.brightdata.com/request",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={
        "zone": ZONE,
Confidence
91% confidence
Finding
This endpoint use extends third-party transmission to discovered API calls, not just public HTML pages. That can leak more structured and potentially sensitive data than page scraping alone, especially if users test authenticated or semi-private endpoints.

VirusTotal

66/66 vendors flagged this skill as clean.

View on VirusTotal

Static analysis

No suspicious patterns detected.