Back to skill

Security audit

soushen

Security checks for vulnerabilities and agentic risk

Overview

This skill performs useful Bing search and page extraction, but its deep-analysis mode has under-disclosed sensitive data collection and unsafe browser settings that users should review before installing.

Install only if you are comfortable with a browser automation skill that can visit arbitrary URLs from your machine and output detailed page data. Avoid using deep analysis on authenticated, private, internal, or sensitive pages until cookie output, form-value output, URL restrictions, and unsafe Chromium flags are removed or tightly controlled.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/bing_search.py:215
Finding

Unrestricted URL Navigation Enables Server-Side Request Forgery

Content
View full analysis
Optional[PageElements]: """深度提取页面所有关键元素""" try: await self.page.goto(url, wait_until='domcontentloaded', timeout=60000) await asyncio.sleep(1) title = await self.page.title() current_url = self.page.url cookies = await self.page.context.cookies() ``` ### Technical Analysis The deep-analysis interface passes a user-controlled URL directly to Playwright's `page.goto()` method. No validation is performed on: - The URL scheme - The destination hostname - Resolved IP addresses - Redirect destinations - Loopback, link-local, private, or reserved address ranges - Cloud metadata endpoints Because the request originates from the machine running the Skill, an attacker can use the browser as a network pivot to access services that are unavailable from the attacker's own network. The page extraction logic subsequently returns text and structural information obtained from the destination. Browser-based SSRF may also execute JavaScript returned by an internal service, increasing the potential attack surface beyond that of a basic HTTP client. ### Attack Path 1. An attacker causes the Skill to run deep-analysis mode with a URL such as a loopback address, private-network host, or link-local metadata endpoint. 2. `parse_args()` accepts the URL without applying a destination policy. 3. `extract_page_elements()` passes the URL directly to `page.goto()`. 4. Chromium sends the request from the Agent host and follows navigation redirects. 5. The extraction logic reads the resulting page text, metadata, links, forms, and other elements. 6. The extracted information is serialized to JSON and exposed through standard output. A public URL that redirects ...[truncated 601 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/bing_search.py:223
Finding

Deep Analysis Exposes Cookies and Live Form Values

Content
View full analysis
{ const inputs = Array.from(form.querySelectorAll('input, select, textarea')).map(i => ({ name: i.name, type: i.type || i.tagName.toLowerCase(), placeholder: i.placeholder || '', required: i.required, value: i.value || '' })); ``` Cookie serialization: ```python "cookies": elements.cookies, ``` ### Technical Analysis Deep-analysis mode collects all cookies present in the browser context and reads the current value of every `input`, `select`, and `textarea` element. These values are then included in the JSON output without filtering or redaction. The documented purpose is to extract page structure and form information. Form values and complete cookie records are not necessary to identify form fields, and cookie collection is not clearly disclosed as a feature. Depending on the page, the resulting output can contain: - Session identifiers - Authentication or anti-CSRF tokens - Tracking identifiers - Personal information - Hidden application state - JavaScript-populated form values - Secrets embedded in password or token fields Although the implementation creates a new browser context for each agent instance, a visited page can set cookies or populate fields during that same session. Those values are still collected and emitted. The output can subsequently enter Agent context, logs, terminal history, monitoring systems, or downstream storage. ### Attack Path 1. The Skill visits a page in deep-analysis mode. 2. The page sets sensitive ...[truncated 1016 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/bing_search.py:97
Finding

Chromium Sandbox and Web Security Protections Are Disabled

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Note
Location
README.md:30
Finding

Playwright Dependency Is Installed Without Version or Integrity Pinning

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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 (14)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documented behavior omits materially sensitive actions: collecting and outputting page cookies and using a deep-analysis CLI shape that differs from the declared interface. Hidden cookie extraction can expose session or tracking data from visited pages, and behavior/description mismatch undermines informed consent and safe review of what the skill actually does.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code enumerates form inputs and includes each field's current value in the output. On authenticated or interactive pages, this can expose prefilled personal data, CSRF tokens, search terms, hidden fields, or other secrets embedded in forms, and users are not warned that form contents will be extracted.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README promotes deep page extraction and anti-detection behavior without any warning about privacy, consent, legal, or system-impact risks. In an agent skill context, this can normalize broad collection of links, forms, buttons, scripts, and metadata from arbitrary sites, which may expose sensitive information or enable unauthorized reconnaissance at scale.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README explicitly advertises '反检测' and bypassing anti-bot mechanisms, which goes beyond the stated benign purpose of Bing search and page-element extraction. Documenting evasion capability encourages use against site defenses, increasing the likelihood of abusive scraping, terms-of-service violations, and use of the skill in stealthy collection workflows.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill advertises networked browser automation and likely accesses environment/browser paths, but it does not declare any explicit tool scope or permissions boundary in the manifest. This makes the skill harder to govern and audit, and can lead to unintended invocation with broader capabilities than users or the platform expect.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger conditions are broad enough that the skill could activate for many generic browsing or search tasks without clear user intent for deep scanning. Over-broad activation increases the chance of unnecessary network access, data extraction, and use of the anti-detection browsing workflow in contexts where a simpler or safer tool should be used.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill describes deep page analysis and extraction of links, forms, buttons, scripts, and metadata but does not warn users that this constitutes structured site reconnaissance. Without a clear warning and consent boundary, users may unintentionally direct the skill to collect more site data than expected, including potentially sensitive form endpoints or embedded resources.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The manifest advertises anti-detection measures such as disabling automation indicators, spoofing user agents, and randomizing behavior, but it does not warn users about these evasive techniques. Evasion features increase abuse potential by helping the skill bypass bot detection or site policies, making the browsing capability materially more dangerous than ordinary automation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The deep-analysis mode retrieves browser cookies from every visited page and includes them in the JSON output, even though the stated purpose is search and page-structure extraction. Cookies can contain session identifiers or tracking tokens, so exposing them to downstream consumers unnecessarily broadens data collection and can enable account/session misuse or privacy leakage.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This is a real over-collection issue: the skill's declared functionality is Bing search and structural page extraction, but it also collects and returns cookies from visited pages. That mismatch increases the chance of secret/token exposure to the agent or user without operational necessity.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill silently captures cookies during deep analysis without any warning, consent, or disclosure to the user. Undisclosed extraction of browser-state artifacts is dangerous because users may not realize that visited pages can cause sensitive session-related data to be returned in tool output.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The natural-language content of the README is effectively Chinese-only, and the document does not indicate that the skill supports multiple languages or that Chinese is a deliberate, justified locale constraint. Under SQP-3, forcing a specific language without user opt-in can be a policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The top-level natural-language description forces a specific language presentation without indicating that other languages are available. Under the stated policy, language constraints should be optional, user-selectable, or clearly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code presents the skill name and descriptive strings in Chinese, and there is no indication that users can opt into another language or locale. The policy scope explicitly covers language or locale constraints across all file types, including code string literals and comments.

Content

No source excerpt is available for this finding.