T05 · Unauthorized Access and Privilege Escalation
- Location
scraper.py:17- Finding
Unnecessary Loading of Secrets from a User-Specific Environment File
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This scraper does what it claims broadly, but it asks to reuse a real Chrome session and load a user-specific .env file, which creates unnecessary access to browser sessions and possible secrets.
Review before installing. Run this only in an isolated browser profile with no personal logins, remove the hard-coded .env loading, and avoid using it on sensitive networks unless website URLs and redirects are validated. Confirm you are allowed to scrape the target services and handle collected business/profile data appropriately.
scraper.py:17Unnecessary Loading of Secrets from a User-Specific Environment File
scraper.py:41Reuse of an Existing Authenticated Chrome Context
scraper.py:303Unvalidated Website Navigation Permits SSRF-Style Access to Internal Resources
SKILL.md:15Unpinned Playwright Installation Creates a Mutable Supply-Chain Dependency
Connecting to an already running Chrome instance over CDP gives this skill access to the broader browser session rather than an isolated scraper context. If the user's Chrome contains authenticated tabs, cookies, or internal pages, the scraper could access or manipulate unrelated data well beyond Google Maps, Facebook, and Instagram scraping.
The hard-coded .env access is a form of credential access because it reads a file conventionally used to store secrets from a specific local workspace. In this skill's context, there is no justified need to access local credentials to scrape public business information, so the behavior is disproportionate and dangerous.
from dotenv import load_dotenv
# Load env
load_dotenv(Path("/Users/edwin/.openclaw/workspace/dreams-arts/.env"))
try:
from playwright.async_api import async_playwright, TimeoutError as PWTimeout
The skill advertises executable behavior that uses environment access and live network scraping, but it declares no explicit tool scope or permission boundaries. That makes the agent's effective capabilities ambiguous and can lead to overbroad execution, unintended secret exposure from the referenced .env workflow, or network activity without clear authorization controls.
The skill is designed to collect structured data from Google Maps, Facebook, and Instagram for lead generation, but it provides no warning about privacy, downstream data use, or platform terms/compliance implications. In this context, omission of those disclosures increases the risk that an agent will collect and process third-party profile data in ways the user did not fully understand or authorize.
The instructions explicitly direct the agent to run a Bash command that triggers live scraping against external services, yet they do not disclose that network activity will occur. This is dangerous because agents or users may unknowingly initiate automated interactions with third-party platforms, creating consent, abuse, and operational risk in addition to possible account or IP blocking.
Loading a local .env file can import API keys, tokens, and other secrets from the operator's machine without any relation to the requested scrape. In the context of an agent skill, undeclared access to local sensitive configuration materially increases risk because the skill executes with host privileges and the imported secrets may become available to other components or future code changes.
The code loads a hard-coded local .env file from a specific user workspace path, which can import secrets unrelated to the scraper's stated purpose. Even if the script does not directly read those variables later, pulling sensitive environment data into process scope is unnecessary privilege expansion and can expose credentials to downstream code, logs, or connected browser sessions.
This code sends user-supplied business and location data to Google Maps, Facebook, Google Search, and arbitrary business websites via automated browser navigation. Although there are progress prints, they do not disclose the privacy impact or third-party data transmission, and the file-level docstring also does not warn the user about this behavior.
The skill description claims scraping from Google Maps, Facebook, and Instagram, but the implementation also follows and scrapes the business's own website. This expands collection scope beyond what a caller would reasonably expect and could trigger browsing to arbitrary third-party domains returned by Google Maps.
No suspicious patterns detected.