T03 · Remote Payload Retrieval and Execution
- Location
QUICKSTART.md:159- Finding
Unverified Remote Installer Is Downloaded and Executed Directly
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This finance-analysis skill needs review because its main workflow presents hard-coded, randomly labeled mock financial analysis as a successful live report.
Do not rely on this skill for real investment research in its current form. Before installing or using it, require the publisher to replace the mock/random primary workflow, remove pipe-to-shell installer guidance, clearly disclose what data is sent to model providers and stored locally, and make scheduling/export behavior opt-in and bounded.
QUICKSTART.md:159Unverified Remote Installer Is Downloaded and Executed Directly
scripts/analyze_sentiment.py:125Untrusted News Content Can Perform Indirect Prompt Injection
scripts/database.py:354Untrusted Database Values Are Exported Without Spreadsheet Formula Neutralization
scripts/main.py:95Primary Workflow Presents Random Mock Data as Successful Financial Analysis
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
ls -lh reports/
rm reports/*.png
---
The quickstart recommends piping a remotely fetched script directly into sh, which executes unreviewed code from the network immediately on the user's system. If the remote server, connection, distribution path, or install script is compromised, this can lead to arbitrary code execution with the user's privileges.
# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 2. 下载模型
ollama pull llama3.1
The use of a shell pipeline into sh amplifies the risk of chaining abuse because it removes any opportunity for the user to inspect the fetched content before execution. In documentation intended for broad use, this pattern normalizes a dangerous practice and makes compromise of the upstream content immediately exploitable.
# 1. 安装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 2. 下载模型
ollama pull llama3.1
This variant includes a meaningful security concern: the skill allegedly performs local file writes while declaring no permissions, and it may misrepresent mocked or placeholder behavior as real analysis. Hidden write capability combined with undocumented execution behavior can lead to unauthorized file creation/modification and unsafe trust assumptions by users or the host environment.
This variant includes a meaningful security concern: the skill allegedly performs local file writes while declaring no permissions, and it may misrepresent mocked or placeholder behavior as real analysis. Hidden write capability combined with undocumented execution behavior can lead to unauthorized file creation/modification and unsafe trust assumptions by users or the host environment.
This variant includes a meaningful security concern: the skill allegedly performs local file writes while declaring no permissions, and it may misrepresent mocked or placeholder behavior as real analysis. Hidden write capability combined with undocumented execution behavior can lead to unauthorized file creation/modification and unsafe trust assumptions by users or the host environment.
This variant includes a meaningful security concern: the skill allegedly performs local file writes while declaring no permissions, and it may misrepresent mocked or placeholder behavior as real analysis. Hidden write capability combined with undocumented execution behavior can lead to unauthorized file creation/modification and unsafe trust assumptions by users or the host environment.
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
Referenced artifact was not completely inspected
| `scheduler.py` | 定时任务(自动运行) | 无 |
The command curl -fsSL https://ollama.com/install.sh | sh fetches and immediately executes a remote script without verification. If the remote host, transport chain, or script content is compromised, users could execute arbitrary code on their machine; in a skill document, this is more dangerous because users may copy-paste it verbatim as trusted setup guidance.
Windows/macOS/Linux:
# 下载安装
curl -fsSL https://ollama.com/install.sh | sh
# 或使用 Docker
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Piping curl output directly into sh is a classic command-chaining anti-pattern that removes any review or integrity check before execution. A compromised script or MITM-adjacent failure in the delivery path could lead to immediate arbitrary command execution with the user's privileges.
Windows/macOS/Linux:
# 下载安装
curl -fsSL https://ollama.com/install.sh | sh
# 或使用 Docker
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.
请直接输出 JSON,不要有其他内容。"""
return prompt
def analyze_with_openai(client: OpenAI, model: str, prompt: str) -> Dict[str, Any]:
The skill advertises deep cross-source financial analysis, company and industry evaluation, and professional brief generation, but the implementation is mostly placeholder logic that reuses mock analysis and stub report generators. This mismatch is dangerous because it can create false trust in the system's sophistication and accuracy, leading users to act on unsupported financial conclusions.
The function labeled as sentiment analysis assigns random sentiment, confidence, and impact values instead of performing any real analysis. In a financial-news skill, this can directly mislead users into making investment decisions based on fabricated outputs, which is especially dangerous because the script presents the results as authoritative analysis.
The script claims to fetch live news from specified sources but instead bypasses fetching and analyzes hard-coded sample articles. This creates deceptive output that appears timely and source-based when it is not, which is particularly risky in a finance context where users may rely on recency and source coverage for trading or risk decisions.
The feature list advertises SQLite persistence, CSV/JSON export, scheduled execution, and external model/API integrations, but gives no warning that news content, derived analysis, or user-provided inputs may be stored locally, transmitted to third-party LLM providers, or processed automatically on a schedule. In a finance-analysis skill, this omission can mislead users about confidentiality, retention, and autonomous outbound activity, increasing the risk of unintended data disclosure and privacy/compliance issues.
The quickstart explicitly instructs users to configure third-party model providers and run analysis, but it does not warn that news content, tickers, prompts, and possibly derived analysis data may be transmitted to external APIs. This creates a privacy and data-handling transparency issue because users may unknowingly send potentially sensitive research inputs to OpenAI, DashScope, or other providers.
The configuration example sets default_language: zh, which imposes a specific language preference in natural-language behavior. The file does not indicate that users can choose another language or that the Chinese default is optional, which can violate language/locale choice expectations.
The skill documents capabilities that imply network access, shell execution, filesystem reads/writes, and environment-variable access, but it does not declare any explicit tool scope or permission boundaries. This creates a least-privilege violation: a host may grant broader access than users expect, enabling unintended data access, command execution, or outbound requests if the implementation is invoked as described.
The documented scope expands from simple news analysis into persistent storage, export, chart generation, and scheduling. This scope creep matters because persistence and automation materially increase attack surface: stored data can accumulate sensitive information, exports can move data out of expected boundaries, and background scheduled runs can make repeated network/API actions without fresh user intent.
Scheduler support is not clearly necessary for an on-demand analysis skill and introduces autonomous execution. If enabled, it can repeatedly fetch data, consume paid APIs, create files, or process user-linked watchlists without real-time confirmation, increasing the risk of abuse, surprise actions, or persistence of compromised behavior.
No suspicious patterns detected.