T09 · Insecure Skill Coding Practices
- Location
scripts/fetch_rankings.py:242- Finding
Unrestricted Source URL Enables Server-Side Request Forgery
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly matches its stated Wenxuecity ranking purpose, but its script can be directed to fetch arbitrary URLs, which is broader network access than that purpose requires.
Review this before installing if your agent runs in an environment with access to localhost, private networks, or cloud metadata services. The safest change would be to remove or restrict the --url option to the intended Wenxuecity HTTPS host; otherwise only run it where arbitrary outbound HTTP GET requests are acceptable.
scripts/fetch_rankings.py:242Unrestricted Source URL Enables Server-Side Request Forgery
The skill invokes a network-fetching script and supports writing output to a file, but the manifest does not declare any explicit tool scope such as permissions or allowed tools. This creates an avoidable trust gap: an agent may execute network and file-write behavior without clear least-privilege boundaries, making review and policy enforcement harder.
This markdown file describes fetching rankings from wenxuecity.com, which implies a network request to an external service. The description explains what the skill does, but it does not include any warning or disclosure that running it will contact a third-party website and may transmit system metadata such as IP address or user-agent.
The request hard-codes an Accept-Language header of "zh-CN,zh;q=0.9,en;q=0.7", which imposes a language/locale preference rather than letting the user choose. The policy allows locale constraints only when they are explicitly documented and justified or user-selectable, which is not present here.
No suspicious patterns detected.