T09 · Insecure Skill Coding Practices
- Location
scripts/discover_flows.py:40- Finding
Unrestricted URL Fetching Enables Server-Side Request Forgery
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This website-monitoring skill is mostly coherent, but it needs review because its helper can be pointed at arbitrary web addresses, including private or internal services via redirects.
Install only if you are comfortable with the agent making outbound requests to URLs you provide and creating recurring checks after confirmation. Do not use it on private, internal, localhost, metadata, or third-party sites unless you have authorization; ideally constrain the helper to approved public hostnames and disable or validate redirects before use.
scripts/discover_flows.py:40Unrestricted URL Fetching Enables Server-Side Request Forgery
The implemented code covers only the discovery portion of the declared description: it crawls a few predefined site paths, extracts links, and categorizes them as possible monitoring candidates. However, the declared purpose emphasizes a broader workflow including identifying business-critical flows, proposing a monitoring plan, and scheduling recurring checks after explicit user confirmation. None of those latter capabilities are present in this code chunk. Because the actual behavior is materially narrower and lacks key advertised functionality, this is a description-behavior mismatch.
The skill instructs the agent to scan websites and use a discovery script, which implies network-capable behavior, but it does not declare an explicit tool scope such as allowed network access. Undeclared capabilities weaken policy enforcement and reviewability, increasing the chance that the skill is invoked with broader access than intended or performs external requests without clear user/admin visibility.
The description uses broad trigger language such as monitoring a website, checking uptime, designing checks, and automating recurring checks, which can cause the skill to activate in loosely related contexts. Over-broad invocation increases the risk of unintended network reconnaissance or premature automation behavior on external sites when a narrower, more specific skill should have been selected.