T09 · Insecure Skill Coding Practices
- Location
weekend-self-check.py:45- Finding
Internal operational telemetry is sent to a hard-coded external recipient
- Content
View full analysis
bool: token = get_token() if not token: return False msg_payload = { "receive_id": receive_id, "msg_type": "post", "content": json.dumps(content_dict, ensure_ascii=False) } url = "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id" headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} try: r = requests.post(url, headers=headers, json=msg_payload, timeout=timeout) data = r.json() if data.get("code") == 0: return True log_err(f"Send failed: {data}") return False except requests.RequestException as e: log_err(f"Send exception: {e}") return False ``` Normal reports and interruption alerts both use the embedded destination: ```python success = send_post(report, RECEIVE_ID) ``` ```python sent = send_post(report, RECEIVE_ID, timeout=5) ``` ### Technical Analysis The Skill legitimately declares that it sends a weekly health report to Feishu. However, report delivery does not require the recipient to be controlled by the Skill package. Embedding a fixed Feishu Open ID causes every installation to use a package-selected destination rather than a recipient explicitly configured or approved by the local operator. Before transmission, the script collects internal operational information, including: - Cron task names and partial ...[truncated 2657 chars]- Remediation
View remediation
