T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party Dependencies Create a Supply-Chain Risk
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This stock-helper is mostly purpose-aligned, but it needs review because it stores and changes sensitive trading records in a hard-coded local path without clear user control.
Review before installing. Use it only if you are comfortable with local plaintext storage of portfolio and trade history, and change the storage path to a private application directory before recording real positions. Avoid sending account-like details, holdings, or trading plans through Tavily unless you consent to third-party processing. Treat all buy/sell/stop-loss outputs as non-professional analysis, not financial advice.
SKILL.md:10Unpinned Third-Party Dependencies Create a Supply-Chain Risk
position_manager.py:14Position Manager Uses a Hard-Coded External Path and Plaintext Financial Storage
strategy_manager.py:16Strategy Manager Uses a Hard-Coded External Path and Plaintext Financial Storage
This is a second description-behavior mismatch covering undeclared persistent reads and writes to multiple JSON files while overstating technical-analysis functionality. Such discrepancies undermine informed consent and make it easier for a skill to collect or modify sensitive financial records under the guise of benign analysis.
This is a second description-behavior mismatch covering undeclared persistent reads and writes to multiple JSON files while overstating technical-analysis functionality. Such discrepancies undermine informed consent and make it easier for a skill to collect or modify sensitive financial records under the guise of benign analysis.
The skill advertises capabilities that include persistent local file access but does not declare any tool scope or permission boundaries. In practice, this makes it harder for users or the host platform to understand that the skill can read and write local state, increasing the risk of unintended data access or modification.
The skill documents Tavily search and research calls but does not inform users that their queries may be sent to a third-party service. User prompts may include portfolio holdings, trade intentions, or proprietary strategy details, so undisclosed transmission creates a meaningful privacy and confidentiality risk.
The skill explicitly offers to record trading activity and maintain positions, but it does not warn users that this information will be stored persistently. Because trading history and portfolio data are financially sensitive, silent retention can expose private behavior, strategy, and account-like information to later reads or unintended sharing.
The script persists stock positions and trade history to a hard-coded absolute path under a local desktop directory. This creates unnecessary long-lived sensitive financial records, can write outside an expected skill sandbox, and may expose or overwrite user data if the path is shared, synced, or accessible to other local processes.
The skill does more than analyze or remind: it creates and mutates durable portfolio and trade records, effectively acting as a stateful portfolio manager. This scope expansion is risky because users may invoke what they believe is advisory tooling while it silently changes persistent financial state, increasing the chance of unintended actions and privacy exposure.
The remove operation marks positions as sold and can record a sell transaction immediately, without any confirmation, undo flow, or safeguard. For financial records, a mistaken command or malformed automation input can irreversibly alter portfolio history and downstream decisions based on that history.
Natural-language strings throughout the file, including docstrings, report labels, usage examples, and recommendations, are presented only in Chinese. The file does not offer user opt-in for language selection or explain that the tool is intentionally restricted to a Chinese-speaking context.
The script generates concrete trading actions such as reducing positions, moving stop losses, and exiting positions, but it does not present any user-facing warning that the output is not financial advice and may lead to monetary loss if followed blindly. In a trading context, prescriptive recommendations increase the chance that users treat the tool as authoritative, which can cause direct financial harm.
The module description and all user-facing CLI output are written in Chinese, which imposes a single language on users without any opt-in or alternative locale. The policy for natural-language violations applies to all file types, including code files with user-facing strings and comments.
The description is written as an instruction to provide the service in Chinese and the rest of the skill content is consistently Chinese-only, with no indication that users may choose another language. This can violate language/locale policy when a skill imposes a specific language without opt-in or documented regional justification.
The description is written only in Chinese and specifically targets A-share trading, which implies a fixed language/locale context without stating that users can choose another language. The policy requires flagging language or locale constraints when they are imposed without explicit user opt-in or justification.
This JSON file includes a natural-language string in Chinese ("示例数据 - 请替换为您的实际持仓") with no indication that the skill is region-specific or that users may choose another language. The policy for this category flags language or locale constraints when they are imposed without user opt-in or justification.
The module title, description, help text, and user-facing messages are written in Chinese, with no indication that users can choose another language. This creates a language policy issue when the skill assumes a fixed locale rather than offering or documenting user choice.
No suspicious patterns detected.