Back to skill

Security audit

Trading Agents 简化版

Security checks for vulnerabilities and agentic risk

Overview

This stock-analysis skill is coherent and discloses its API, web-search, subagent, and local-report behavior, but users should treat its generated investment reports cautiously.

Install dependencies in an isolated environment, keep API tokens in environment variables only, expect the skill to contact Tushare and web-search services, and review saved reports before relying on them. Do not treat the BUY/SELL/HOLD output as personal financial advice.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:33
Finding

Unpinned Third-Party Dependencies Create a Supply-Chain Execution Risk

Content
View full analysis
=1.3.0 pandas>=1.5.0 numpy>=1.21.0 ``` `skill.json:20-29`: ```json "dependencies": { "python": ">=3.8", "pip": [ "tushare>=1.3.0", "pandas>=1.5.0", "numpy>=1.21.0" ] }, "install": { "pip": "pip install tushare pandas numpy" } ``` ### Technical Analysis The Skill instructs users or the hosting framework to install packages directly from the default Python package index. None of the packages are pinned to an exact reviewed version, and no integrity hashes or lock file are supplied. The installation command in `skill.json` is less restrictive than the dependency declaration because it contains no version constraints at all. Consequently, the effective code installed and imported by the Skill can change after this package has been reviewed. Python packages can execute code during installation and whenever their modules are imported. Both operational scripts import `tushare`, while the market-data script additionally imports `pandas` and `numpy`. A compromised future release, dependency-confusion event, or compromise of a transitive dependency could therefore introduce arbitrary code into the Skill's execution path. ### Attack Path 1. An attacker compromises the publisher account, release process, or transitive dependency of one of the declared packages. 2. The attacker publishes a malicious version that still satisfies the open-ended constraints, or any version in the case of the unversioned installation command. 3. A user or Skill framework follows the documented installation instructions. 4. `pip` retrieves and installs the malicious release from the configured package index. 5. Malicious code executes during package installation or when the scripts import the affected package. 6. The malic ...[truncated 824 chars]
Remediation
View remediation
pandas== numpy== ``` 2. Generate a reproducible lock file containing hashes for direct and transitive dependencies, and install with hash verification: ```bash pip install --require-hashes -r requirements.lock ``` 3. Make the dependency list and installation command in `skill.json` identical. Do not retain the unversioned `pip install tushare pandas numpy` command. 4. Use an organization-controlled package mirror or allowlisted package repository where possible. 5. Run dependency vulnerability and provenance checks in CI, including transitive dependency inspection. 6. Perform package installation in an isolated virtual environment or container with minimal filesystem access and no unnecessary credentials. 7. Separate dependency installation from runtime execution so that API credentials are not present during package installation. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:151
Finding

Untrusted Web Content Is Propagated Across SubAgents Without Prompt-Injection Isolation

Content
View full analysis
Remediation
View remediation
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 (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad enough to activate on ordinary requests for stock discussion or investment advice, which can cause the skill to run unexpectedly. Because this skill performs external API calls, spawns multiple subagents, and writes reports to disk, accidental invocation increases the chance of unnecessary data exposure, unintended side effects, and user confusion about what actions will occur.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The output template switches into Chinese headings and disclaimer text, indicating the generated report is expected in a specific language. The file does not state that Chinese is optional, user-selected, or required for a region-specific compliance reason, which makes this a natural-language locale policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown skill prescribes the final report sections, labels, and disclaimer in Chinese, effectively requiring a specific language for output. The file does not offer a user language choice or explain that the skill is limited to a Chinese-speaking or region-specific context, which makes this a natural-language locale policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This code's user-facing natural-language strings and documentation are written exclusively in Chinese, including the description, progress messages, and error output. Under the stated policy, forcing a specific language without offering user choice or documenting a justified locale constraint is a language/locale policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This code file contains natural-language strings entirely in Chinese, including the module docstring and runtime error/output messages, but does not indicate that the skill is China-specific or provide any user opt-in for language selection. That creates a locale-policy concern because the skill imposes a specific language on users by default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The output template and all reporting instructions are written as fixed English section headings and labels, which steers the skill toward English-only responses. Because the file does not offer the user a language option or justify the locale constraint as region-specific, this is a natural-language locale policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

This markdown file instructs the agent to use web search across several social platforms, which may involve handling user-generated content and profile-related information. While the skill includes quality notes about verification and not relying blindly on sentiment, it does not warn users about privacy implications or that external-platform content may be gathered and processed.

Content

No source excerpt is available for this finding.