T01 · Skill Instruction Hijacking
- Location
scripts/set_alert.py:25- Finding
Persistent OpenClaw Task Sends Alerts to a Hard-Coded External Recipient and Accepts Prompt Injection
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This stock-analysis skill mostly matches its stated purpose, but its alert feature creates recurring OpenClaw jobs that message a hard-coded QQ recipient.
Review this skill carefully before installing. Do not use the price alert feature unless the hard-coded QQ recipient is removed or replaced with your own confirmed destination, and avoid running the simulation reset until the state path and backup behavior are fixed.
scripts/set_alert.py:25Persistent OpenClaw Task Sends Alerts to a Hard-Coded External Recipient and Accepts Prompt Injection
scripts/simulate_trading.py:18Simulation State Is Written to a Fixed Root-Level OpenClaw Workspace Path
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
If the skill creates persistent scheduled jobs, sends outbound notifications, and contains a hardcoded recipient ID while presenting itself as a stock-analysis assistant, that is a meaningful undeclared-behavior risk. Persistent automation and fixed exfiltration/notification targets expand the blast radius beyond local analysis and can be abused for covert messaging, unwanted task persistence, or data leakage.
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
Referenced artifact was not completely inspected
python scripts/simulate_trading.py
The skill advertises and invokes local scripts that imply shell execution plus file read/write behavior, but the manifest does not declare any explicit tool scope or permissions. This weakens the trust boundary for agents and reviewers, making it easier for a skill to exercise broader capabilities than users expect and increasing the chance of unsafe execution in environments that rely on manifest-declared restrictions.
The manifest description and the entire user-facing README content are written in Chinese and target A股 usage, but the file does not state that the skill is region-specific or provide any language/locale opt-in. Under the policy, forcing a specific language without user choice is a natural-language policy violation unless the locale constraint is clearly documented and justified.
The document provides concrete buy/sell signals, position-sizing guidance, and stop-loss/take-profit rules without any risk disclosure or suitability warning. In the context of a stock-trading skill that supports strategy generation and aggressive simulated trading, users may over-trust these prescriptive rules as financial advice, leading to significant financial harm or unsafe automated downstream use.
This file presents its title, usage, and behavior description exclusively in Chinese, and the CLI output throughout the script follows the same pattern. Under the policy, forcing a specific language without offering a user choice or documenting a justified locale constraint is a natural-language policy violation.
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
url = f"https://qt.gtimg.cn/q={stock_code}"
try:
result = subprocess.run(
["curl", "-s", url],
capture_output=True,
timeout=10
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
url = f"https://qt.gtimg.cn/q={stock_code}"
try:
result = subprocess.run(
["curl", "-s", url],
capture_output=True,
timeout=10
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
url = f"https://qt.gtimg.cn/q={stock_code}"
try:
result = subprocess.run(
["curl", "-s", url],
capture_output=True,
timeout=10
subprocess module calls execute external commands. Without careful input validation, this enables command injection.
url = f"https://qt.gtimg.cn/q={stock_code}"
try:
result = subprocess.run(
["curl", "-s", url],
capture_output=True,
timeout=10
The module docstring and later user-facing output indicate the skill is designed to communicate only in Chinese. Under the policy rules, forcing a specific language without user opt-in or justification is a natural-language policy violation.
The manifest describes a stock analysis assistant with features like industry fund-flow analysis, where network access is expected. However, invoking an external program through subprocess is a separate execution capability beyond ordinary data retrieval and is not necessary to fulfill the stated purpose. This expands the skill's operational power in a way the manifest does not justify.
No suspicious patterns detected.