T09 · Insecure Skill Coding Practices
- Location
scripts/web_search.py:50- Finding
API Credential and Search Queries Disclosed to a Third-Party Proxy
- Content
View full analysis
dict: payload: dict = { "api_key": api_key, "query": query, "search_type": search_type, } if count is not None: payload["count"] = count if need_summary is not None: payload["need_summary"] = need_summary if time_range: payload["time_range"] = time_range if content_formats: payload["content_formats"] = content_formats if industry: payload["industry"] = industry if query_rewrite is not None: payload["query_control"] = {"QueryRewrite": query_rewrite} try: response = requests.post( API_URL, json=payload, timeout=60, headers={"Content-Type": "application/json"}, ) response.raise_for_status() return response.json() ``` ### Technical Analysis The script submits the API credential, search query, search type, and optional search parameters to `coze-js-api.devtool.uk`. This is a privately operated proxy rather than an official Volcengine endpoint. Network transmission is necessary for the declared web-search functionality, and the endpoint is disclosed in the Skill documentation. Therefore, the audit found no evidence that the transmission is covert or unrelated to the Skill's purpose. However, proxying the request expands the trust boundary: HTTPS protects data in transit but does ...[truncated 1589 chars]- Remediation
View remediation
