T08 · Insecure Dependencies
- Location
SKILL.md:266- Finding
Unpinned and Globally Installed Third-Party Dependencies
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a stock-analysis and portfolio helper, but it can read unrelated local screenshots, overwrite or clear portfolio data, and guide broad environment changes without enough safeguards.
Install only if you are comfortable with the skill reading local inbound screenshots and storing/modifying portfolio holdings. Before use, require explicit confirmation before processing images, overwriting holdings, removing entries, or clearing all data, and avoid running the global/system install commands automatically.
SKILL.md:266Unpinned and Globally Installed Third-Party Dependencies
references/analysis_prompt_template.md:8Unrelated Private Images May Be Read Through Ambiguous Latest-File Selection
The skill’s declared purpose is narrow technical analysis, but the documented behavior expands into portfolio modification and destructive management actions while key advertised capabilities are not actually implemented. This mismatch is dangerous because users and the host agent may trust the skill under false assumptions, leading to unsafe invocation, overbroad data handling, or execution of side-effecting operations outside the expected scope.
The activation rules are extremely broad, including any image and nearly any stock-related request, which can cause the skill to trigger outside the user’s actual intent. Overbroad activation is dangerous here because the skill reads local files and may perform portfolio updates or analysis on sensitive financial data without clear consent.
The skill instructs the agent to read and update portfolio files but does not declare any explicit tool scope or permissions boundaries. This creates an authorization gap where file access is implied by documentation rather than constrained by policy, increasing the risk of unintended access to local user data.
The skill is defined for 'A股' analysis and the instructions hardcode Chinese-language interaction and OCR settings such as 'chi_sim+eng'. While region-specific behavior may be valid, the file does not explicitly document this locale restriction as a user-facing limitation or offer a language/locale choice.
The trigger phrase '每日一股' or similar wording is ambiguous and can match casual conversation, promotional text, or unrelated requests. In this skill, ambiguous activation matters because it can lead to unintended portfolio access or unsolicited investment-analysis behavior.
The clear-portfolio command is documented without confirmation safeguards, so a simple phrase could trigger irreversible deletion of financial records. Because the data is user portfolio information, accidental activation or prompt confusion could directly cause loss of sensitive personal state.
The troubleshooting section directs the agent to perform system-level package installation, environment-variable changes, junction creation, and service restarts. These actions exceed the reasonable scope of a stock-analysis skill and could alter the host environment, introduce supply-chain risk, or disrupt unrelated services if followed automatically.
The template instructs the agent to automatically process the latest file from a shared inbound screenshot directory whenever the user sends a screenshot. This is risky because the trigger is broad and the file-selection logic is not bound to a verified user/session, creating a privacy and data-mixup hazard where unrelated screenshots could be analyzed.
The workflow accesses inbound screenshots from a local media directory containing potentially sensitive user financial data, but it provides no explicit privacy notice, consent step, retention guidance, or restrictions on handling. In this skill context, screenshots likely contain portfolio holdings and account information, so silent ingestion increases the risk of unauthorized processing and disclosure.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
|------|---------|
| Windows | `winget install tesseract-ocr.tesseract` |
| macOS | `brew install tesseract` |
| Linux (Ubuntu/Debian) | `sudo apt-get install tesseract-ocr` |
| Linux (CentOS/RHEL) | `sudo yum install tesseract` |
**中文语言包安装:**
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
|------|---------|
| Windows | `winget install tesseract-ocr.tesseract` |
| macOS | `brew install tesseract` |
| Linux (Ubuntu/Debian) | `sudo apt-get install tesseract-ocr` |
| Linux (CentOS/RHEL) | `sudo yum install tesseract` |
**中文语言包安装:**
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
|------|------|
| Windows | 下载 chi_sim.traineddata 放入 C:\Program Files\Tesseract-OCR\tessdata\ |
| macOS | brew install tesseract-lang 或手动下载放入 /usr/local/share/tessdata/ |
| Linux | sudo apt-get install tesseract-ocr-chi-sim 或手动下载放入 /usr/share/tesseract-ocr-4.00/tessdata/ |
调用命令(跨平台):
The AI-result update replaces the entire portfolio from recognized input without warning or reconciliation, so recognition errors or malformed input can silently erase or corrupt existing holdings. Because the source may be screenshot OCR or model-extracted data, the risk is elevated by the inherent fallibility of AI parsing.
The script exposes state-changing and destructive portfolio-management operations such as add, remove, clear, and bulk overwrite, while the skill description primarily frames the capability as analysis and advisory output. In an agent setting, this broadens the blast radius from read/analysis to persistent modification of user financial data, increasing the risk of accidental or unauthorized tampering.
The clear operation irreversibly wipes all saved portfolio data immediately, with no confirmation prompt, dry run, backup, or undo mechanism. In a financial holdings context, accidental invocation can destroy sensitive user state and disrupt later analysis or advice based on those records.
The CLI exposes administrative actions including full clear, deletion, and file/JSON-driven bulk updates that can directly rewrite persisted portfolio state. In a skill intended for end-user stock analysis, these controls are not adequately justified and create a pathway for mass unintended changes if invoked by automation, wrapper code, or a confused operator.
The documented ability to clear all portfolio data is broader than the stated analysis purpose and introduces a destructive operation without strong contextual justification. Even if intended as a user convenience, it increases the chance of accidental or unauthorized data loss.
Docstrings, printed messages, and command help text are consistently presented only in Chinese, which imposes a language choice on all users. The file does not offer any language selection or indicate that the skill is intentionally region-specific.
The script fetches live index data from an external data provider via akshare, which necessarily involves outbound network requests. While failures are logged, there is no user-facing disclosure here that running the analysis will contact external services and transmit request metadata/system network information.
This call retrieves live A-share quote data through akshare, implying outbound network access. The file prints progress and errors, but it does not clearly disclose to the user that the skill will connect to third-party data sources during execution.
The K-line retrieval function downloads historical stock data from an external provider, which is a network operation covered by the warning requirement for code files. The code handles errors but does not explicitly warn users that analysis depends on remote data access.