T09 · Insecure Skill Coding Practices
Error
- Location
- scripts/capture_console.js:15
- Finding
- Chromium Sandbox Disabled for Untrusted Web Content## Vulnerability Details **File Location**: `scripts/capture_console.js:15-18`, `scripts/capture_network.js:14-17`, `scripts/analyze_performance.js:14-17`, `scripts/check_cors.js:14-17` **Vulnerability Type**: Unsafe browser isolation configuration **Risk Level**: High ### Vulnerable Code The following browser launch configuration appears in all four scripts: ```js browser = await puppeteer.launch({ headless: true, args: ['--no-sandbox', '--disable-setuid-sandbox'] }); ``` ### Technical Analysis Both Chromium sandbox mechanisms are explicitly disabled. The scripts subsequently navigate to a URL supplied by the caller and process potentially hostile web content. Chromium's sandbox is a defense-in-depth boundary intended to isolate renderer processes from the host system. Disabling it substantially increases the consequences of a browser or renderer vulnerability. This configuration is not inherently malicious, but it is an unsafe default for a tool whose intended function includes visiting arbitrary development and production websites. Headless mode does not provide an equivalent security boundary. ### Attack Path 1. An attacker convinces a user or Agent to inspect an attacker-controlled URL. 2. One of the inspection scripts launches Chromium with `--no-sandbox` and `--disable-setuid-sandbox`. 3. Chromium loads and executes the attacker's web content. 4. The malicious page exploits a browser vulnerability. 5. Because the normal Chromium sandbox is disabled, the exploit encounters fewer isolation boundaries when attempting to access the host environment. Successful exploitation depends on the presence of a suitable Chromium vulnerability; the unsafe configuration does not by itself provide direct code execution. ### Impact Assessment A successful browser exploit could execute code with the operating-system privileges of the Node.js process. Depending on the execution environment, this may expose readable ...[truncated 198 chars]
- Remediation
- ## Remediation Suggestions - Remove `--no-sandbox` and `--disable-setuid-sandbox` and run Chromium with its supported sandbox enabled. - Run the scripts as a dedicated, unprivileged operating-system user. - If the hosting environment cannot support the Chromium sandbox, execute the browser inside a disposable container or virtual machine with: - A read-only root filesystem. - No sensitive host mounts. - No inherited secrets or cloud credentials. - Dropped Linux capabilities. - Resource limits. - Restricted outbound and internal-network access. - Keep Chromium and Puppeteer on reviewed, supported security releases. - Clearly warn and require confirmation if an operator attempts to inspect an untrusted external site.
