T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:39- Finding
Arbitrary URL Fetching Enables Server-Side Request Forgery
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 39-57
Vulnerability Type: Unrestricted server-side URL navigation
Risk Level: HighVulnerable Code
bash curl -s -X POST http://192.168.0.9:3000/title \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com"}'bash # Toàn bộ text curl -s -X POST http://192.168.0.9:3000/scrape \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com"}' # Theo CSS selector curl -s -X POST http://192.168.0.9:3000/scrape \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com","selector":"h1"}'Technical Analysis
The documented Playwright service accepts a caller-controlled
urland navigates to it from the service's network context. The skill does not require validation of the URL scheme, hostname, resolved IP address, port, or redirect destination.Consequently, a user able to invoke the skill may replace
https://example.comwith a loopback, link-local, private-network, or cloud metadata address. The/scrape,/title, and screenshot operations could then expose information from resources that are reachable by the Playwright service but not directly reachable by the user.The actual server implementation is not included in the audited project, so server-side mitigations cannot be verified. The vulnerability is established at the skill-instruction level because the documented workflow permits unrestricted destination input and specifies no safety checks.
Attack Path
- An attacker supplies a URL pointing to an internal HTTP service, loopback interface, private address, or metadata endpoint.
- The agent sends that URL to the Playwright service at
192.168.0.9:3000. - The service navigates to the destination from its privileged network position.
- The attacker uses
/scrape,/title, or/screenshotto capture the response. - Returned text, metadata, or ...[truncated 561 chars]
- Remediation
View remediation
Remediation Suggestions
- Enforce a strict server-side allowlist of approved HTTPS origins.
- Reject loopback, link-local, private, reserved, multicast, and cloud metadata address ranges.
- Resolve hostnames and validate every resulting IPv4 and IPv6 address before navigation.
- Repeat destination validation after every redirect to prevent redirect-based bypasses.
- Reject non-HTTP(S) schemes and URLs containing unexpected credentials or ports.
- Run the browser in an isolated network segment without access to internal systems or metadata services.
- Add authentication, authorization, rate limiting, request logging, and abuse monitoring to the service.
- Do not rely solely on client-side or skill-text validation, because callers may invoke the endpoint directly.
