T09 · Insecure Skill Coding Practices
Error
- Location
- skill.py:76
- Finding
- Chromium Runs with Its Security Sandbox Disabled## Vulnerability Details **File Location**: `skill.py:76-82` **Vulnerability Type**: Browser isolation disabled **Risk Level**: High ```python chrome_cmd = [ "chromium-browser", "--no-sandbox", "--disable-dev-shm-usage", "--disable-gpu", f"--window-size={FIXED_WIDTH},{FIXED_HEIGHT}", ] chrome_cmd.append(url or "about:blank") ``` ### Technical Analysis The `--no-sandbox` argument disables Chromium's process sandbox, which is a principal defense against malicious web content and renderer vulnerabilities. Visiting untrusted or bot-resistant websites is central to the Skill's declared functionality, so disabling this isolation boundary materially increases exposure. The argument is applied unconditionally. It is therefore used even when Chromium runs as an unprivileged account on a system where the normal Chromium sandbox could operate. This exceeds the minimum privilege configuration necessary in those environments. The Skill does not itself contain a browser exploit. Successful host compromise would require a vulnerability in Chromium or one of its components, but disabling the sandbox substantially increases the consequences of such a vulnerability. ### Attack Path 1. The Agent starts the Skill with an attacker-controlled or compromised URL. 2. Chromium launches with `--no-sandbox`. 3. The page delivers content that exploits a Chromium renderer or browser component vulnerability. 4. Because the normal sandbox boundary is disabled, exploit code may execute with the operating-system privileges of the Chromium process. 5. The attacker can access resources available to the account running the Skill. ### Impact Assessment A successful browser exploit could obtain the privileges of the Skill's operating-system account. This may permit access to that user's files, environment, browser session data, network access, and other processes or services available to the account. The code does not ...[truncated 176 chars]
- Remediation
- ## Remediation Suggestions - Remove `--no-sandbox` and run Chromium under a dedicated, unprivileged operating-system account. - Ensure user namespaces and the Chromium sandbox helper are correctly configured. - Refuse to start as root unless execution occurs inside a hardened, disposable container. - If sandbox disabling is unavoidable, require an explicit opt-in option rather than applying it unconditionally. - Isolate the browser with a read-only filesystem, restricted network policy, dropped Linux capabilities, seccomp/AppArmor controls, and no access to host credentials. - Keep Chromium updated and document the residual risk associated with opening untrusted websites.
