T09 · Insecure Skill Coding Practices
- Location
scripts/cde_client.py:652- Finding
Chrome Browser Sandbox Disabled for Remote Web Content
- Content
View full analysis
Vulnerability Details
File Location:
scripts/cde_client.py, lines 652-663
Vulnerability Type: Browser security boundary disabled
Risk Level: Mediumpython options = webdriver.ChromeOptions() if self.headless: options.add_argument("--headless=new") options.add_argument("--window-size=1440,1200") options.add_argument("--disable-dev-shm-usage") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("--no-sandbox") options.add_argument("--lang=zh-CN") options.add_argument( "--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36" ) options.set_capability("goog:loggingPrefs", {"performance": "ALL"})Technical Analysis
The Selenium client launches Chrome with
--no-sandbox. The skill then visits and executes active content from the live CDE website. Chrome's sandbox normally isolates renderer processes and limits the consequences of a renderer or web-content compromise. Disabling it removes a defense-in-depth boundary and gives a successful browser exploit a more direct path to the privileges of the Chrome process.The flag is not required for the skill's declared data-query functionality on a normally configured desktop. It is sometimes used as a workaround in containers, but applying it unconditionally exposes every execution environment to the weaker security configuration.
This option does not independently create arbitrary code execution. Exploitation requires malicious or compromised remote content and a compatible browser vulnerability.
Attack Path
- The user invokes a query, causing Selenium to start Chrome.
- Chrome starts with its process sandbox disabled.
- The browser loads the live CDE page and associated remote resources.
- An attacker compromises the remote site or a resource it serves, or otherwise causes the page to deliver content that exploit ...[truncated 791 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove
options.add_argument("--no-sandbox")from the default browser configuration. - Run Chrome as an unprivileged, dedicated operating-system user.
- If a restricted container cannot support Chrome's sandbox, provide a clearly named explicit opt-in option rather than disabling it universally.
- Document that the opt-in mode weakens browser isolation and must only be used inside a hardened disposable container.
- For container deployments, avoid root execution, sensitive host mounts, host networking, and unnecessary Linux capabilities.
- Keep Chrome and its driver integration current with security patches.
- Consider enforcing navigation and resource policies so the automated browser only accesses expected HTTPS origins.
- Remove
