T09 · Insecure Skill Coding Practices
- Location
SKILL.md:23- Finding
Browser SSRF Protection Bypass Through JavaScript Navigation
- Content
View full analysis
", profile="user", target="host") // Then use JS to navigate (avoids SSRF blocks on navigate action) browser(action="act", kind="evaluate", target="host", profile="user", fn="window.location.href = 'https://creator.douyin.com'") ``` The bypass is also explicitly recommended in the troubleshooting guidance: ```text - **"navigate blocked by SSRF"**: Use `act` + `evaluate` with `window.location.href` instead of `navigate` action ``` ### Technical Analysis The skill explicitly instructs the agent to circumvent the browser tool's SSRF-protected navigation operation by executing JavaScript in an attached browser tab. Assigning a URL to `window.location.href` through unrestricted evaluation provides an alternative navigation channel that does not necessarily apply the URL validation, network-destination restrictions, or audit controls enforced by the dedicated `navigate` operation. The currently hardcoded destination, `https://creator.douyin.com`, is consistent with the skill's declared purpose. However, the documented technique establishes an unsafe security pattern. If the destination becomes influenced by user input, compromised page content, or a modified copy of the skill, the same technique could be used to reach attacker-controlled sites or network locations that the protected navigation operation would reject. ### Attack Path 1. The agent loads the skill and attaches to a Chrome instance using the user's authenticated browser profile. 2. The agent enumerates open tabs and focuses an existing user tab. 3. A maliciously modified instruction, untrusted input flow, or future parame ...[truncated 1438 chars]- Remediation
View remediation
