Back to skill

Security audit

Temp Skill

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent financial backtesting skill that reads a user-selected CSV and writes local reports and charts, with ordinary dependency and privacy hygiene cautions.

Install this in an isolated Python environment, pin or review dependency versions if reproducibility matters, avoid putting API keys in shared files, and write outputs to a controlled directory because reports may contain local paths and portfolio analysis data.

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:22
Finding
Unpinned Third-Party Dependencies Permit Supply-Chain Compromise## Vulnerability Details **File Locations**: - `SKILL.md:22-25` - `README.md:21-24` - `优化使用指南.md:29-32` - `manifest.json:12-18` **Vulnerability Type**: Installation of mutable, unverified third-party dependencies **Risk Level**: Medium ### Vulnerable Code Snippets `SKILL.md:22-25`: ```bash ## Installation Dependencies ```bash pip install yfinance pandas numpy matplotlib seaborn plotly ``` ``` `README.md:21-24`: ```bash ### 1. Install Python Dependencies ```bash pip install pandas numpy matplotlib seaborn ``` ``` `优化使用指南.md:29-32`: ```bash ## Install Dependencies ```bash pip install pandas numpy matplotlib seaborn ``` ``` `manifest.json:12-18`: ```json "dependencies": { "python": [ "pandas", "numpy", "matplotlib", "seaborn" ] }, ``` ### Technical Analysis The project instructs users to install third-party Python packages without version constraints, integrity hashes, a lock file, or an explicitly trusted package index. The manifest likewise declares package names without versions. Consequently, installation resolves whichever package versions and transitive dependencies are available from the active pip index at installation time. The reviewed source may therefore execute with dependency code that differs from the versions used during development or security review. Python packages can execute code during installation and expose executable module initialization logic when imported. A compromised upstream release, compromised transitive dependency, or maliciously configured package index could therefore introduce attacker-controlled code into the Skill's execution environment. The documentation also lists `yfinance` and `plotly`, although the reviewed executable implementation does not import them. These unnecessary dependencies increase the available supply-chain attack surface. ### Attack Path 1. An attacker compromises a listed packa ...[truncated 1663 chars]
Remediation
## Remediation Suggestions 1. Create a reviewed dependency lock file containing exact versions for all direct and transitive dependencies. 2. Generate and verify cryptographic hashes for every distribution, then install with hash enforcement, for example: ```bash python -m pip install --require-hashes -r requirements.txt ``` 3. Pin dependencies to approved versions rather than using unrestricted package names. 4. Explicitly select a trusted package index in deployment documentation and prevent fallback to untrusted indexes. 5. Remove `yfinance` and `plotly` from installation instructions unless corresponding functionality is implemented and required. 6. Run dependency vulnerability and provenance checks in CI whenever the lock file changes. 7. Install and execute the Skill in an isolated virtual environment under a non-privileged account. 8. Keep `manifest.json`, the lock file, and all installation documentation synchronized so every installation path uses the same reviewed versions.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (10)

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
The README consistently presents instructions and descriptions in Chinese, which can amount to forcing a specific language on users without opt-in. The policy allows locale constraints when they are explicitly justified or when a language choice is offered, neither of which is present here.

Natural-Language Policy Violations

Medium
Confidence
92% confidence
Finding
This code presents its primary description and user-facing interface text in Chinese, and the rest of the file continues that pattern in argument help and console output. Under the policy rule, forcing a specific language without user opt-in or a documented regional justification is a natural-language policy violation.

Natural-Language Policy Violations

Medium
Confidence
95% confidence
Finding
This Python file contains natural-language descriptions and user-facing output entirely in Chinese, starting from the module docstring and continuing throughout the skill. Under the policy rule, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified, which is not present here.

Missing User Warnings

Low
Confidence
83% confidence
Finding
This markdown file documents that the skill generates a report, JSON data, and several image files in the output directory. Under the missing-warning rule for markdown, behaviors that affect user data or system state should be disclosed; here the file creation behavior is described functionally, but there is no clear caution or warning that running the skill will write multiple files to disk.

Missing User Warnings

Low
Confidence
87% confidence
Finding
For markdown files, missing-warning findings apply when the description omits warnings about behaviors that could affect user data or system integrity. This file explicitly lists multiple generated output files and shows commands using an output directory, but it does not include a user-facing warning that execution will create and overwrite files in the specified location.

Missing User Warnings

Low
Confidence
84% confidence
Finding
The skill instructs users to configure an API key but provides no guidance on secure secret handling. This can lead users to hardcode credentials in scripts, config files, or shared environments, increasing the risk of accidental disclosure through source control, logs, screenshots, or generated reports.

Natural-Language Policy Violations

Low
Confidence
82% confidence
Finding
The manifest’s user-facing name, description, features, and changelog are entirely presented in Chinese, and there is no indication that users may choose another language or locale. This can violate language/locale policy when a skill implicitly forces a specific language without documenting that constraint or offering opt-in.

Natural-Language Policy Violations

Low
Confidence
92% confidence
Finding
自然语言内容从标题到使用说明全部以中文呈现,且未说明这是面向特定中文用户群的区域性技能,也未提供其他语言选项。按规则,未经用户选择而强制单一语言可构成语言/区域策略问题。

Missing User Warnings

Low
Confidence
85% confidence
Finding
The guide explicitly states that reports, JSON files, and charts are generated, and the included sample report shows a full local Windows path plus portfolio data. In an agent or shared-workspace setting, failing to warn that outputs may contain sensitive local paths and financial analysis data can lead to unintended information disclosure when artifacts are uploaded, logged, or shared.

Missing User Warnings

Low
Confidence
92% confidence
Finding
This markdown file documents that the skill produces multiple output artifacts, including text reports, JSON data, and image files, and later shows commands using an output directory. Under the markdown-specific missing-warning rule, user-facing documentation should warn when behavior affects user data or the filesystem, but no caution about file creation or overwriting is provided here.

Static analysis

No suspicious patterns detected.