T09 · Insecure Skill Coding Practices
- Location
scripts/browser_ctrl.py:30- Finding
Chrome Browser Sandbox Is Disabled
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a real browser automation tool, but it gives broad, under-scoped control over browsing, cookies, JavaScript, screenshots, proxying, and weakened browser isolation.
Review before installing. Use this only in an isolated environment and avoid sensitive or logged-in websites unless you explicitly intend the agent to see or change that session. Be especially cautious with JavaScript execution, cookie commands, proxy/user-agent changes, and screenshot filenames; the Chrome sandbox is disabled and screenshots may contain private page content.
scripts/browser_ctrl.py:30Chrome Browser Sandbox Is Disabled
scripts/browser_ctrl.py:88User-Controlled Screenshot Filename Allows Writes Outside the Intended Directory
SKILL.md:62Selenium Dependency Is Installed Without Version or Integrity Pinning
The skill advertises capabilities to read cookies, page source, links, images, and execute arbitrary JavaScript or modify browser state, but it provides no privacy, consent, or security warnings. In context, this is more dangerous because the skill is a browser automation tool with direct access to potentially sensitive authenticated sessions and can alter request behavior via cookies, user-agent, and proxy settings.
The trigger phrases are very broad and include common terms like '浏览器', '点击', and '填写', which can cause the skill to be invoked in ordinary conversations unrelated to explicit browser automation. Because this skill can open pages, execute JavaScript, manipulate cookies, and use proxies, ambiguous invocation materially increases the chance of unintended execution and unsafe browsing actions.
This code creates a persistent output directory and later saves screenshots and exported page artifacts into it, which can capture sensitive page contents or user data. Although the methods have internal docstrings, there is no visible confirmation prompt or user-facing disclosure when these file-writing operations occur from the CLI.
The driver initialization deliberately hides automation by disabling webdriver indicators and injecting a script to mask navigator.webdriver. In an agent skill, anti-detection measures increase the risk of covert browsing, bypass of bot protections, and use against sites in ways the stated automation purpose does not justify.
execute_script accepts arbitrary JavaScript and runs it in the current page context, enabling state-changing actions, data extraction, and interaction with authenticated sessions. In combination with open_url, click, fill, and submit, this gives a caller broad power to perform covert actions on behalf of the user.
get_cookies returns the full browser cookie jar for the active site without any filtering, redaction, or access control. In an agent context this can expose session tokens and authentication material, enabling account hijacking or unauthorized reuse of authenticated sessions.
The method is documented as "导出 PDF" and returns a filesystem path, implying it creates a PDF at that location. In reality, it only executes window.print() and never writes or verifies a PDF file at filepath, so the documentation and returned result materially misrepresent the side effect.
Nearly all descriptive content, commands context, and operational notes are presented only in Chinese, with no indication of language options or opt-in. This can violate language/locale policy where skills should not force a specific language absent documented justification.
The module documentation and user-facing strings are written in Chinese, which imposes a specific language without any opt-in or explanation of a region-specific requirement. This can violate language/locale policy expectations when users are not given a choice.
No suspicious patterns detected.