Back to skill

Security audit

myquant

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent MyQuant trading SDK skill, but it needs Review because it enables live brokerage orders and bulk portfolio changes without strong safety scoping or pinned dependencies.

Install only if you intend to use MyQuant for trading or market-data research. Start in backtest or paper/simulation mode, keep GM_TOKEN out of source files and chat transcripts, use a dedicated low-privilege environment, pin and review dependency versions before connecting live credentials, and require explicit human confirmation before any live order, rebalance, margin operation, cancel-all, or close-all action.

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
requirements.txt:1
Finding

Unpinned Third-Party Dependencies Permit Unreviewed Supply-Chain Code Execution

Content
View full analysis
=3.0.0 pandas>=1.5.0 numpy>=1.20.0 ``` `SKILL.md:16-21`: ```bash pip install gm ``` ```text Alternatively, download it from: https://www.myquant.cn/docs/downloads/698 ``` `README.md:17-20`: ```bash pip install gm ``` `demo_project/README.md:6-11`: ```bash pip install -r ../requirements.txt ``` `metadata.json:17-24`: ```json "dependencies": { "python": ">=3.8", "packages": [ "gm>=3.0.0", "pandas>=1.5.0" ] } ``` ### Technical Analysis All Python dependencies use lower-bound constraints rather than exact, reviewed versions. The documented installation commands also omit package hashes, signature verification, and an explicitly trusted package index. Consequently, dependency resolution may install any future release satisfying the specified minimum version. Python packages can execute code during installation and whenever imported. The `gm` package is particularly sensitive because this Skill directs users to provide it with a `GM_TOKEN`, retrieve account information, and potentially submit live brokerage orders. A malicious or compromised package release could therefore inherit the privileges of the user running the installation or strategy. The audit did not identify a currently embedded malicious package or payload. Exploitation depends on compromise or malicious publication through the selected package source, but the project does not provide controls that would prevent such an unreviewed release from being selected. ### Attack Path 1. An attacker compromises the publisher account, package repository, distribution infrastructure, or ...[truncated 1535 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (16)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The quick reference includes immediately usable live order-placement examples such as market buys, percent-based allocation, target position changes, and liquidation, but it does not warn that these calls can affect a real brokerage account if used in a live environment. In a trading SDK context, readers may copy and run snippets directly, so omission of safety context increases the risk of unintended trades and financial loss.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README includes code that places market orders and explicitly mentions both backtesting and live trading, but it does not warn users that the same API can trigger real trades with financial consequences. In an agent-skill context, this increases the chance that users copy or automate the example without understanding that changing mode or credentials could cause unintended real-money execution.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill explicitly documents real trading and broker-connected live execution, but it does not provide a prominent warning that these commands may place real orders, move funds, or affect a live brokerage account. In an agent setting, this omission is dangerous because users or downstream automation may treat the examples as safe informational snippets when they can directly trigger financially irreversible actions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation includes order_close_all(), which is a destructive portfolio-wide action, without an adjacent warning that it can liquidate positions if used in live mode. In context, this skill is specifically for quant trading and broker-connected execution, so exposing bulk-close operations without strong guardrails materially increases the chance of accidental account-wide liquidation by an agent or user.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The rebalancing examples use market orders and target-position functions that can execute immediately and alter holdings, yet the surrounding documentation does not clearly warn about live-account consequences. Because this skill targets an event-driven trading platform with real broker connectivity, these examples can be operationalized by an agent with little friction, making the omission materially risky.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The natural-language metadata is entirely in Chinese, including the description and tags, with no indication that language selection is optional or that the skill is intentionally limited to Chinese-speaking users. This can violate language/locale policy when a skill implicitly forces one language without user opt-in or documented justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The file content, headings, and instructional text are all in Chinese, which effectively forces a specific language for users reading the skill documentation. Under the stated policy, this is a language/locale constraint that should either be optional for the user or explicitly justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

The README content, headings, and usage guidance are entirely in Chinese, which effectively forces a specific language for users. There is no indication that this is an explicitly region-specific skill or that alternative language support is optional.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The documentation tells users to export or embed a trading token, and the sample code also shows hardcoded token usage, but it does not explain secret-handling risks such as shell history exposure, accidental commits, or leaking credentials in shared environments. Because the token is tied to a trading platform, compromise could enable unauthorized access to sensitive account functions or trading actions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This markdown file uses Chinese for the skill description and usage instructions, but it does not indicate that the language is optional or limited to a specific regional audience. Under the language/locale policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

The manifest description states general support for quantitative trading, backtesting, and live trading, but does not specify when this skill should be invoked or what user requests should activate it. In a manifest file, this broad capability description can create ambiguous activation boundaries without explicit trigger phrases, exclusions, or context constraints.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The dependency specifier gm>=3.0.0 is unpinned, so installs may resolve to different future releases over time. This weakens build reproducibility and increases supply-chain risk because a later compromised or breaking release could be pulled into backtests or live trading environments without review.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
gm>=3.0.0
pandas>=1.5.0
numpy>=1.20.0

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The requirement pandas>=1.5.0 allows any newer version, which makes the environment non-reproducible and can unintentionally introduce vulnerable or malicious upstream releases. In a quantitative trading skill, silently changing data-processing behavior or pulling an unsafe package version can affect both reliability and security.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
gm>=3.0.0
pandas>=1.5.0
numpy>=1.20.0

Unverifiable Dependency: pandas has 1 known advisory(ies) (CVE-2020-13091 (** DISPUTED ** pandas through 1.0.3 can unserialize and execute commands from an)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

The requirement numpy>=1.20.0 is unpinned, so future installations may fetch different versions than originally tested. This creates a supply-chain and stability risk, especially in a trading-related environment where numerical behavior and package integrity matter.

Content

Scanner excerpt · requirements.txt (reported line 3)May include surrounding context.

text
gm>=3.0.0
pandas>=1.5.0
numpy>=1.20.0

Unverifiable Dependency: numpy has 16 known advisory(ies) (CVE-2014-1859 (Numpy arbitrary file write via symlink attack); CVE-2021-41495 (NumPy NULL Pointer Dereference); CVE-2021-33430 (NumPy Buffer Overflow (Disputed)) +13 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
40% confidence
Finding

Dependency has known vulnerabilities (CVEs). Using packages with unpatched security flaws exposes the environment to known exploits.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.