other
- Location
monitor.py:21- Finding
Undisclosed Automatic Transmission to a Hard-Coded Feishu Recipient
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mainly a Geekbench lookup and monitoring tool, but it can automatically send reports to a hard-coded Feishu recipient and writes to fixed local paths without clear user control.
Review before installing. Use this only if you are comfortable with Geekbench data being fetched from the web, reports being stored locally, and the monitor script potentially sending reports through your OpenClaw Feishu messaging setup to the embedded recipient. Prefer a version that disables notifications by default, makes the recipient and output directory explicit, and sanitizes report filenames.
monitor.py:21Undisclosed Automatic Transmission to a Hard-Coded Feishu Recipient
tasks.py:220Path Traversal and File Creation Outside the Intended Data Directory
The module docstring and multiple user-facing print strings are written only in Chinese, indicating the skill operates in a fixed language without offering the user a choice. This is a natural-language locale policy concern because the file does not document a justified region-specific scope or provide opt-in language selection.
The code writes output to a hard-coded absolute local path under a specific user's home directory without validation, configurability, or explicit consent. In an agent or shared execution environment, this can lead to unintended data persistence, overwrite existing files, leak scraped data into sensitive workspaces, or fail unpredictably depending on host layout and permissions.
This Python file contains natural-language text in Chinese in the module docstring and later user-facing status messages/comments, but provides no indication that the language is configurable or that the skill is intentionally limited to a Chinese-speaking context. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.
With no manifest available, the only stated intent comes from the module docstring saying this is a "Geekbench monitoring script" with Feishu notification support. The code implements an additional capability to invoke an external CLI and send messages to a specific Feishu target, which is not inherently required for local benchmark monitoring and broadens the skill into external communication.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
'--target', 'ou_b5694469884a90935f9c9b5a687155a1',
'--message', message
]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
if result.returncode == 0:
print("Feishu message sent")
return True
The file’s docstrings, status messages, usage text, and CLI prompts are written exclusively in Chinese, which imposes a specific language on users. There is no visible opt-in, fallback, or documentation indicating that the skill is intentionally limited to Chinese-speaking users for a justified regional purpose.
The instantiated GeekbenchCrawler is used throughout the file to search devices, fetch latest benchmarks, and retrieve benchmark details, implying external data collection capability. Because no manifest or purpose is available, this network/data-harvesting behavior is not justified by stated intent.
The code hard-codes a user-specific writable path under /Users/ding/.openclaw/workspace/geekbench/data and writes files there automatically. This can expose local system structure, create unintended persistence, and overwrite or accumulate data in a location the caller did not explicitly approve, which is risky for a reusable skill running in unknown environments.
The JSON report string is written entirely in Chinese, including the title and section headings such as 'Geekbench 监控报告' and '新设备发现'. For a general monitoring artifact, this imposes a specific language/locale without any visible opt-in or explanation that the skill is intended only for Chinese-speaking users.
This markdown file contains user-facing content only in Chinese, including the title and section labels, with no indication that the language is configurable or intended for a specific locale. The policy requires flagging language or locale constraints when they are imposed without user opt-in or documented justification.
This markdown file contains a Chinese title at L01 and an English report heading at L03, but it does not explain the intended language policy or offer any language/locale choice. Under the policy rule, forcing or assuming a language without opt-in can be a natural-language policy concern.
The title at L01 is in Chinese while the main report heading at L03 is in English, but the document provides no indication that the language choice was user-selected or intentionally locale-specific. This can violate language/locale policy expectations when a skill output imposes mixed-language content without opt-in or justification.
The report title is in Chinese on L01 while the body heading on L03 is in English, but the file provides no explanation of intended locale, user language preference, or region-specific scope. This can violate language/locale policy expectations when a skill emits content in a specific language without user opt-in or documented justification.
The natural-language content in the report is entirely presented in Chinese, including labels and headings, with no indication that the user selected this language or that the file is intended for a China-specific audience. This can violate a language or locale policy when a skill imposes a specific language without opt-in.
The docstring says this method 'quickly gets scores only' and 'does not include detail parsing', but the implementation still downloads the full benchmark detail page and parses its HTML with BeautifulSoup. While it extracts fewer fields than the full detail method, the documentation understates the actual behavior and side effects.
The file not only monitors benchmark updates but also writes markdown and JSON archives and maintains long-lived state in local directories. For an unknown-purpose skill, this is a broader capability than transient monitoring alone and should be justified as part of the intended behavior.
This plain-text report is entirely presented in Chinese, including headings and labels, with no indication that the language was selected by the user or that the report is intended only for a Chinese-speaking locale. That can conflict with language/locale policy requirements when a skill imposes a specific language without opt-in.
The file presents all user-facing report text in Chinese, including headings and labels, with no indication that the user opted into this locale or that the skill is intended only for Chinese-speaking users. This can violate language/locale policy when a skill imposes a specific language without user choice or documented justification.
This plain-text report presents all headings and status labels in Chinese, which imposes a specific language on readers. The file does not indicate that the report is intended only for a Chinese-speaking audience or provide any opt-in/alternative locale, which matches the language-policy concern for natural-language content.
The function signature for task_monitor_latest includes save_path: str = None, which implies the caller can control where results are saved. In practice, the implementation never uses save_path and instead unconditionally reads and writes last_check.json in the hard-coded data directory.
No suspicious patterns detected.