This skill is highly vulnerable to command injection and prompt injection
Claims to do
行业研究报告生成 Skill: 本 Skill 用于根据用户的自由输入,使用模型提取行业关键词,调用行业研究脚本生成研究报告,最终输出包含最终返回标题、正文、PDF/DOC附件地址。
Actually does
This skill installs `httpx` via `pip`, then executes a Python script (`scripts/get_data.py`) with a user-provided topic. This script uses an `EM_API_KEY` to likely access an external database (东方财富数据库) to generate an industry research report, saving it as PDF and DOCX files locally to a configurable directory, and providing a shareable URL.
openclaw skills install financial-ai-analyst/industry-research-reportDeBERTa classifier detected prompt injection (confidence: 1.00)
When truncated_text is empty, the agent is instructed to read the docx attachment and summarize its content. An attacker who controls the API endpoint (or a malicious industry dataset) could embed prompt injection instructions within the DOCX file, which the agent would then process and execute as trusted instructions.
若Step 2中的脚本返回的[truncated_text]部分为空,则读取接口返回的docx附件内容,总结相关报告信息返回
The truncated_text field returned by the external script/API is inserted verbatim into the agent's response template. If the external service returns adversarial content containing prompt injection directives, those instructions could be interpreted as agent commands in downstream processing.
[truncated_text]... is inserted directly into the output template from Step 3
The script's output, including file paths (`pdf_output_path`, `docx_output_path`) and a `share_url`, is directly presented to the user. If the script is compromised (e.g., via command injection), these outputs could be manipulated to exfiltrate data to attacker-controlled locations or direct users to malicious sites.
"pdf_output_path": "...", "docx_output_path": "...", "share_url": "..." (in script output and final template)
The skill writes report files to a directory specified by `INDUSTRY_RESEARCH_REPORT_OUTPUT_DIR`. While configurable, if an attacker can control the script's execution or output paths (e.g., via command injection), they could potentially write files to arbitrary locations, leading to resource abuse or system disruption.
`INDUSTRY_RESEARCH_REPORT_OUTPUT_DIR` environment variable and "脚本会写入本地文件"
The skill constructs a shell command by directly interpolating user-supplied input ({{topic}}) into a python3 invocation without any sanitization or escaping. An attacker can craft a malicious industry query containing shell metacharacters (e.g., semicolons, backticks, $(), etc.) to execute arbitrary commands on the host system.
python3 {baseDir}/scripts/get_data.py --query "{{topic}}"The script writes PDF and DOCX files to paths returned by the server (pdf_output_path, docx_output_path). These server-controlled paths are reflected directly into the agent's output and potentially used for file operations, enabling path traversal attacks that could overwrite sensitive files on the host filesystem.
"pdf_output_path": "完整报告的pdf文件保存地址", "docx_output_path": "完整报告的docx文件保存地址"
The share_url field returned by the external API is embedded directly into agent output and presented to the user. A compromised or malicious API endpoint could return URLs pointing to internal network resources (SSRF), phishing sites, or URLs containing prompt injection payloads that the agent or user might follow.
"share_url": "完整报告的分享链接" ... **分享链接:** [share_url]
The skill requires EM_API_KEY to be set in the environment and passes it to an external script. If the script or the external API is compromised, the key could be exfiltrated. The metadata declares this as a required environment variable, meaning any agent running this skill automatically exposes the credential to the script execution environment.
"requires": {"env":["EM_API_KEY"]}The {baseDir} placeholder in the command string is interpolated without documented validation or sandboxing. If this value is controlled or influenced by user input or environment configuration, it could be manipulated to execute scripts from attacker-controlled paths.
python3 {baseDir}/scripts/get_data.py --query "{{topic}}"The skill explicitly prohibits the agent from using background/async execution and requires it to synchronously block until the external script completes. This could be exploited to cause indefinite blocking of the agent session if the script hangs or is intentionally slow, effectively a denial-of-service against the agent runtime.
禁止调用 任何「后台执行、稍后汇报」的方式跑本脚本,只能在当前会话中同步等待到命令完成
[](https://mondoo.com/ai-agent-security/skills/clawhub/financial-ai-analyst/industry-research-report)<a href="https://mondoo.com/ai-agent-security/skills/clawhub/financial-ai-analyst/industry-research-report"><img src="https://mondoo.com/ai-agent-security/api/badge/clawhub/financial-ai-analyst/industry-research-report.svg" alt="Mondoo Skill Check" /></a>https://mondoo.com/ai-agent-security/api/badge/clawhub/financial-ai-analyst/industry-research-report.svgSkills can read files, run commands, and access credentials. Mondoo helps organizations manage the security risks of AI agent skills across their entire fleet.