Back to skill

Security audit

Options Analyzer

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent options-analysis skill, but users should treat its outputs as educational calculations rather than trading advice.

Install and run this only in an isolated Python environment with reviewed, pinned dependencies. Expect ticker symbols to be sent to Yahoo Finance through yfinance. Treat strategy rankings and examples as educational analysis only, verify market data and assumptions independently, and do not rely on the skill as personalized financial advice.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:28
Finding
Unpinned Third-Party Dependency Installation## Vulnerability Details **File Location**: `SKILL.md`, line 28 **Vulnerability Type**: Unpinned third-party dependencies and unrestricted transitive dependency resolution **Risk Level**: Medium ### Vulnerable Code ```bash pip install yfinance mibian pandas numpy # Install dependencies ``` ### Technical Analysis The installation command retrieves the latest available versions of four third-party packages and their transitive dependencies. It provides no exact version constraints, cryptographic hashes, lockfile, reviewed package index, or isolated-environment requirement. Consequently, the code installed when this instruction is followed can differ from the code that existed when the Skill was audited. Package installation hooks and imported package initialization code execute with the permissions of the user running `pip` or the scripts. A compromised package release or transitive dependency could therefore introduce arbitrary code into the execution environment. The dependency declaration is also incomplete: `scripts/greeks_calc.py` imports `scipy.stats.norm`, but `scipy` is absent from the documented installation command. Users may respond to the resulting import error by installing an unreviewed package manually, further weakening dependency control. This finding concerns supply-chain exposure; the audit found no evidence that the currently named packages are malicious. ### Attack Path 1. An attacker compromises the publishing account, build pipeline, or upstream repository of one of the named or transitive packages. 2. The attacker publishes a malicious release to the package index. 3. A user or agent follows line 28 of `SKILL.md` without version or hash restrictions. 4. `pip` resolves and installs the malicious release or compromised transitive dependency. 5. Malicious package code executes during installation or when a project script imports the package. 6. That code operates with the permissions of the invoking user and can access resources ava ...[truncated 556 chars]
Remediation
## Remediation Suggestions 1. Create a dependency manifest containing exact, reviewed versions for every direct dependency, including `scipy`. 2. Generate and commit a lockfile that records all transitive dependency versions. 3. Record cryptographic hashes and require their verification during installation, for example: ```bash python -m venv .venv . .venv/bin/activate python -m pip install --require-hashes -r requirements.txt ``` 4. Avoid floating version ranges in production or agent-executed installation workflows. 5. Install dependencies only from an approved package index over authenticated TLS, and explicitly configure the permitted index rather than relying on ambient `pip` settings. 6. Run the scripts and dependency installation in an isolated, non-privileged environment with minimal filesystem, credential, and network access. 7. Add automated dependency auditing and update dependencies through reviewed pull requests. 8. Document the supported Python version and test the locked dependency set in CI to prevent users from making ad hoc dependency substitutions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (21)

Tp4

High
Category
MCP Tool Poisoning
Confidence
94% confidence
Finding
If the skill claims real-time market-data retrieval and options analytics but does not actually access data or perform the promised computations, the skill can mislead downstream agents and end users into trusting nonexistent analysis. In this context, the mismatch is more dangerous because the domain is investment decision support, where accuracy and provenance matter materially.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
If the skill claims real-time market-data retrieval and options analytics but does not actually access data or perform the promised computations, the skill can mislead downstream agents and end users into trusting nonexistent analysis. In this context, the mismatch is more dangerous because the domain is investment decision support, where accuracy and provenance matter materially.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding
If the skill claims real-time market-data retrieval and options analytics but does not actually access data or perform the promised computations, the skill can mislead downstream agents and end users into trusting nonexistent analysis. In this context, the mismatch is more dangerous because the domain is investment decision support, where accuracy and provenance matter materially.

Ae1

High
Category
analysis-evasion
Content
| 策略分析 | `strategy_analyzer.py` | 15+种策略盈亏、Breakeven |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 策略分析 | `strategy_analyzer.py` | 15+种策略盈亏、Breakeven |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Ae1

High
Category
analysis-evasion
Content
| 策略分析 | `strategy_analyzer.py` | 15+种策略盈亏、Breakeven |
Confidence
100% confidence
Finding
Referenced artifact was not completely inspected

Natural-Language Policy Violations

Medium
Confidence
84% confidence
Finding
The user-facing description and headings are written in Chinese and present the skill as operating in that language, but there is no indication that users may choose another language or opt in to a locale-specific experience. Under the policy, forcing a language without user choice can be a natural-language policy violation unless clearly justified.

Vague Triggers

Medium
Confidence
93% confidence
Finding
The trigger conditions are very broad, covering many generic options-related phrases without clear boundaries. This can cause the skill to activate in contexts where it is not appropriate, leading users or orchestrators to select a potentially misleading financial-analysis tool even when the request does not require it.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
This section gives concrete options trading tactics such as hedging, theta income, and volatility trades with numeric examples, but does not include any warning that these are risky, can produce losses, and are not personalized financial advice. In a skill explicitly designed to analyze options and recommend strategies, omission of risk disclosures increases the chance users treat educational examples as actionable guidance and suffer financial harm.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
This markdown file contains instructional content exclusively in Chinese, and there is no indication that users may select another language or that the language restriction is required for a specific audience. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
This is a natural-language policy issue because the file presents its purpose and usage text exclusively in Chinese. Users who do not read Chinese are forced into a specific locale/language experience, and the file does not indicate that this constraint is optional or region-specific.

Natural-Language Policy Violations

Medium
Confidence
97% confidence
Finding
The script's docstrings, CLI description, error messages, markdown output, and strategy advice are all fixed in Chinese. This enforces a specific language/locale without offering the user a choice, which matches the language/locale policy violation category.

Missing User Warnings

Medium
Confidence
91% confidence
Finding
This script analyzes and formats options strategies, including naked short calls/puts and other positions with potentially unlimited loss, but it provides no warning that the output is educational/informational only and not personalized financial advice. In an agent skill that can be triggered by users asking for strategy recommendations, omission of clear risk and suitability disclaimers increases the chance users treat the output as actionable trading guidance, especially for high-risk strategies.

Natural-Language Policy Violations

Medium
Confidence
96% confidence
Finding
This code file contains user-facing natural-language content entirely in Chinese in the module docstring and usage text. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly documented and justified, which is not present here.

Natural-Language Policy Violations

Medium
Confidence
93% confidence
Finding
Multiple user-visible strings such as help text, section headings, reasons, and error messages are presented only in Chinese. The file does not offer a locale selection mechanism or clearly justify a Chinese-only constraint, so it violates the language/locale policy.

Natural-Language Policy Violations

Low
Confidence
95% confidence
Finding
The entire skill content is presented in Chinese, including the title and instructional material, with no indication that the user can choose another language or that the skill is intentionally region-specific. This matches the language/locale policy concern for natural-language content that imposes a specific language without opt-in.

Intent-Code Divergence

Low
Confidence
95% confidence
Finding
The docstring says the function gets '历史 IV 数据' via '计算每日 ATM IV 的近似', which implies an IV-like historical series. However, the code explicitly computes rolling historical volatility from close-price returns and returns that series instead. This is an active documentation-to-code mismatch about what data is being analyzed.

Missing User Warnings

Low
Confidence
86% confidence
Finding
The script sends user-supplied symbols to Yahoo Finance via yfinance without clearly warning users that their queries trigger external network access and third-party data transmission. In an agent-skill context, this can surprise users and leak potentially sensitive trading interests or research activity to an external service, even though the transmitted data is limited.

Natural-Language Policy Violations

Low
Confidence
96% confidence
Finding
This code file contains natural-language descriptions and CLI help text in Chinese, beginning with the module docstring. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern because users are not given any language or locale choice.

Natural-Language Policy Violations

Low
Confidence
94% confidence
Finding
The argparse description, argument help text, warning message, and error text are all presented only in Chinese. Because the file does not offer an alternative language or explain a justified locale restriction, this fits the language/locale policy violation category.

Natural-Language Policy Violations

Low
Confidence
97% confidence
Finding
Natural-language strings in the docstring, CLI descriptions, and output are consistently Chinese, which effectively forces a specific language on users. The file does not provide an opt-in, alternate locale, or justification for a Chinese-only experience.

Static analysis

No suspicious patterns detected.