T09 · Insecure Skill Coding Practices
- Location
scripts/url_fetcher.py:45- Finding
SSRF Protection Can Be Bypassed to Access Internal Network Resources
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill fetches web pages as advertised, but its safety checks for internal URLs and file writes are too weak for the security claims it makes.
Review before installing in sensitive environments. Use it only for trusted public URLs, avoid running it where cloud metadata or internal HTTP services are reachable, and save output only to a dedicated scratch directory. Do not rely on its current checks to block all internal destinations or protect important files from overwrite.
scripts/url_fetcher.py:45SSRF Protection Can Be Bypassed to Access Internal Network Resources
scripts/url_fetcher.py:21Overly Broad and Fragile Path Validation Allows Sensitive File Overwrites
Model output is used without validation or sanitization. Unvalidated output injected into downstream contexts (SQL, shell, HTML) enables injection attacks and arbitrary code execution.
output.parent.mkdir(parents=True, exist_ok=True)
# Fetch
subprocess.run([
"python3",
"/path/to/url_fetcher.py",
"fetch",
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Combine with task-runner:
# Add task to fetch content
task_runner.py add "Fetch article on topic X" "research"
# Fetch when ready
The skill encourages fetching arbitrary remote URLs but does not clearly warn users that doing so sends the requested target, IP address, headers/User-Agent, and timing metadata to external servers. In an agent setting, this omission can cause accidental disclosure of sensitive research targets or internal investigation activity, even if the fetcher itself is otherwise functioning as described.
No suspicious patterns detected.