T09 · Insecure Skill Coding Practices
- Location
scripts/fetch.js:188- Finding
Arbitrary HTTP Targets and Redirects Enable Server-Side Request Forgery
- Content
View full analysis
a.startsWith('http')); ``` `scripts/playwright-support.js:13-19`: ```js export const BROWSER_ARGS = [ '--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--disable-accelerated-2d-canvas', '--disable-gpu', ]; ``` `scripts/playwright-support.js:123-126`: ```js return chromium.launch({ headless, executablePath: execPath || undefined, args: BROWSER_ARGS, }); ``` ### Technical Analysis The fetch command accepts a URL whenever its string begins with `http`. It does not validate the parsed scheme, destination hostname, resolved IP addresses, port, or redirect destinations. In particular, it does not reject: - IPv4 or IPv6 loopback addresses - RFC 1918 private networks - Link-local addresses - Cloud instance metadata endpoints - Reserved or special-purpose networks - Public hostnames that resolve to internal addresses - Public URLs th ...[truncated 2673 chars]- Remediation
View remediation
