T09 · Insecure Skill Coding Practices
- Location
SKILL.md:100- Finding
Unrestricted User-Controlled URL Fetching Enables SSRF
- Content
View full analysis
dict: """ Fetch article content Args: url: Article URL Returns: dict: {"title": str, "content": str} """ # This calls OpenClaw's web_fetch or browser tool. # The actual implementation requires integration with the OpenClaw tool system. return { "title": "", "content": "" } ``` ### Technical Analysis The Skill instructs the hosting Agent to pass an article URL to `web_fetch` or a browser tool. The URL originates from the user, but the reviewed workflow does not require validation of: - The URL scheme. - The destination hostname. - The resolved IP address. - Redirect destinations. - Loopback, link-local, private, reserved, or multicast address ranges. - Response size and request duration. Although retrieving remote articles is necessary for the declared functionality, unrestricted destination access exceeds the minimum network privilege needed to fetch public articles. The Python method is currently a placeholder rather than a direct network implementation. However, the opera ...[truncated 1795 chars]- Remediation
View remediation
