T09 · Insecure Skill Coding Practices
- Location
scripts/volcengine_docs.py:32- Finding
Unrestricted URL Forwarding to the Remote Document Fetch Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This documentation skill mostly matches its stated purpose, but its fetch helper can forward arbitrary user-supplied URLs to a remote Volcengine fetch API instead of limiting requests to official documentation links.
Install only if you are comfortable with Volcengine documentation queries and fetch URLs being sent to Volcengine's remote API. Avoid using the fetch command on untrusted or non-Volcengine URLs, and prefer a version that enforces an HTTPS www.volcengine.com/docs/ allowlist before forwarding URLs.
scripts/volcengine_docs.py:32Unrestricted URL Forwarding to the Remote Document Fetch Service
The skill describes and encourages network access to external documentation APIs but does not declare an explicit tool scope such as permissions or allowed-tools. This creates a governance gap: an agent runtime may permit broader-than-intended network use or make policy enforcement and review harder, increasing the chance of unauthorized outbound requests or misuse of the skill's network capability.
The instruction that any Volcano Engine-related consultation or documentation need should always prioritize this skill is overly broad and can bias agent routing beyond the user's actual intent or least-privilege needs. In practice, this can cause unnecessary external calls, over-collection of user queries, and suppression of safer or more appropriate tools when the task only partially relates to Volcano Engine.
The natural-language description is entirely in Chinese and includes a sample fetch URL parameter '?lang=zh', but the skill does not state that language selection is optional or user-driven. This can amount to a locale policy violation because it implicitly fixes the interaction and retrieved documentation to Chinese without user opt-in.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
try:
response = requests.post(url, headers=headers, json=payload, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
return response.json()
except Exception as e:
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
"Content-Type": "application/json"
}
try:
response = requests.post(url, headers=headers, json=payload, timeout=REQUEST_TIMEOUT)
response.raise_for_status()
return response.json()
except Exception as e:
No suspicious patterns detected.