Back to skill

Security audit

Lottery Analyzer Backup 20260418 083724

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed Chinese lottery analysis tool that reads lottery data, generates predictions, and writes local reports/prediction records without evidence of deception, exfiltration, or unsafe persistence.

Install only if you are comfortable with a Chinese-language lottery tool that writes local prediction history, reports, and updated draw data. Treat recommendations as entertainment, verify any dependency versions yourself, and ignore or remove the stray 3D prediction files if you want the package limited to SSQ/DLT.

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

Note
Location
README.md:25
Finding

Unpinned Third-Party Dependencies Installed Without Integrity Verification

Content
View full analysis

Vulnerability Details

File Location: README.md:25; also present at QUICK_START.md:92
Vulnerability Type: Unpinned and integrity-unverified package installation
Risk Level: Low

Vulnerable Code

README.md:25:

bash
pip install pandas openpyxl

QUICK_START.md:92:

bash
pip install pandas numpy

Technical Analysis

The installation instructions request packages by name without specifying exact versions or cryptographic hashes. The project also contains no dependency lock file or hash-verified requirements file. Consequently, the installed code depends on whichever package versions the configured Python package index resolves at installation time.

This does not demonstrate that the named packages are currently malicious. However, it creates a supply-chain weakness because installation results are not reproducible and do not enforce the versions reviewed or tested by the project author. A compromised upstream publisher account, package index, mirror, or future malicious release could cause different code to be installed under the same documented command.

The analyzer imports pandas during startup. Therefore, code introduced through a compromised dependency could execute when Python imports the installed package, even if the skill's own source remains unchanged.

Attack Path

  1. An operator follows the documented pip install command.
  2. pip resolves the latest compatible package versions from the operator's configured index or mirror.
  3. An attacker who has compromised an upstream release process, publisher account, index, or mirror supplies a malicious package version.
  4. Because no version or hash is enforced, the malicious artifact is accepted as satisfying the installation command.
  5. The operator invokes the lottery analyzer.
  6. The analyzer imports the affected dependency, allowing its Python or native initialization code to run with the privileges of the invok ...[truncated 785 chars]
Remediation
View remediation

Remediation Suggestions

  1. Create a reviewed requirements file with exact versions, for example:

    text
    pandas==<reviewed-version>
    numpy==<reviewed-version>
    openpyxl==<reviewed-version>
    
  2. Generate and verify hashes for every direct and transitive dependency. Install with a command such as:

    bash
    python -m pip install --require-hashes -r requirements.txt
    
  3. Use a lock-file tool such as pip-tools, Poetry, or uv to produce reproducible dependency resolution.

  4. Pin transitive dependencies as well as direct dependencies and review lock-file changes during upgrades.

  5. Use an approved package index or internally controlled mirror, and require TLS certificate validation.

  6. Add automated dependency vulnerability and provenance scanning to the release process.

  7. Replace the unpinned commands in both README.md and QUICK_START.md with installation through the reviewed lock or requirements file.

Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (31)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding

The documented handler can mutate built-in CSV data and persist new records, while the skill is presented mainly as an analysis assistant. Undeclared state mutation increases risk because users or orchestrators may treat the skill as read-only, yet it can alter trusted datasets and affect later outputs.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
91% confidence
Finding

The documented handler can mutate built-in CSV data and persist new records, while the skill is presented mainly as an analysis assistant. Undeclared state mutation increases risk because users or orchestrators may treat the skill as read-only, yet it can alter trusted datasets and affect later outputs.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documented handler can mutate built-in CSV data and persist new records, while the skill is presented mainly as an analysis assistant. Undeclared state mutation increases risk because users or orchestrators may treat the skill as read-only, yet it can alter trusted datasets and affect later outputs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill description is entirely presented in Chinese and introduces the tool as a general-purpose system, with no indication that language selection is optional or limited to a Chinese-speaking context. Under the policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding

The skill documents file read/write behavior and persistent result generation, but it does not declare any explicit tool scope or permissions boundaries. This is dangerous because an agent runtime may grant broader filesystem access than users expect, enabling unintended reads or writes beyond the lottery data files.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest says the skill activates when the user needs to analyze lottery data, generate recommended numbers, or view hot-number rankings, but it does not define specific trigger phrases, constraints, or exclusion conditions. This broad natural-language activation scope could cause unintended invocation from generic requests about analysis or recommendations.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The skill name, description, and all user-facing instructions are presented only in Chinese, which indicates a language-specific experience without any opt-in or explanation that the skill is intentionally restricted to Chinese-speaking users. Under the policy, a fixed language or locale should be optional or clearly justified.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill advertises analysis and recommendation, but this section adds automatic dataset updates and saved outputs, introducing hidden state changes. In agent settings, undeclared persistence is risky because it can modify future analysis baselines, create integrity issues, and surprise users expecting a stateless tool.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

Hooking into OpenClaw message listeners expands the skill from on-demand analysis into event-driven message processing. That broader integration surface is more dangerous because it can ingest unsolicited input, trigger writes automatically, and operate outside the narrower expectations of a lottery analysis skill.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill metadata says it supports only 双色球(SSQ)and 大乐透(DLT), but this file contains 3D lottery predictions and betting advice. This mismatch can cause the agent to act outside its declared scope, leading to misleading recommendations, broken policy assumptions, and unsafe downstream behavior if routing, guardrails, or user trust rely on the manifest being accurate.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file contains prediction data for 中国福利彩票3D (3D), while the skill metadata declares support only for 双色球 (SSQ) and 大乐透 (DLT). This mismatch can cause the agent to activate or respond outside its documented scope, leading to misleading outputs, unsafe assumptions in downstream logic, or user deception about what the skill is authorized to analyze.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The manifest presents the skill name and description only in Chinese ("彩票分析系统" and "双色球数据自动更新 + 智能预测") with no indication that users can choose another language or that the skill is intentionally limited to a Chinese-speaking or region-specific audience. This creates a natural-language policy concern because the skill appears to enforce a locale/language preference without opt-in or documented justification.

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 user-facing natural language that assumes a single language/locale, including the top-level description and later CLI/help output. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill silently creates local storage directories for reports and prediction history and later writes analysis outputs there by default. In an agent-skill context, undocumented persistence expands the data-handling scope beyond on-demand analysis, can retain user-supplied issue metadata and generated recommendations, and may expose data to other local users/processes or cause unintended accumulation of records.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The code includes prediction-history loading, winning-check, result saving, and prize-statistics features that are not reflected in the skill description. Hidden or undeclared capabilities are risky in agent environments because operators and users may grant trust based on the advertised scope while the code can process and retain additional state and files beyond simple lottery analysis.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The default execution path automatically saves prediction records unless the user discovers and supplies --no-save. Silent persistence without a clear warning or consent is dangerous because it stores user activity and generated outputs unexpectedly, creating privacy, retention, and local exposure risks in shared or managed environments.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file’s user-facing documentation and command examples are entirely in Chinese, and later user-facing prompts and accepted natural-language inputs also require Chinese terms such as "双色球" and "预测". There is no indication that another language is supported or that users may opt into a different locale, which can violate a language/locale choice policy.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill description says it supports both 双色球(SSQ)and 大乐透(DLT)for analysis and recommendation, but this file hardcodes an SSQ-only CSV path and all parsing/validation logic assumes SSQ red/blue ball structure. The prediction path also instantiates the analyzer with 'ssq', so the implemented behavior is narrower than the advertised capability.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

The manifest emphasizes data analysis, trend prediction, and intelligent recommendations, but this handler also creates directories, appends new draw data to a CSV, and persists prediction outputs as JSON files. Those write-side data management behaviors are broader than a purely analytical assistant as described.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

Default generation and saving of analysis result files creates persistent artifacts without corresponding manifest disclosure. While the data is not highly sensitive by itself, silent writes can leak user activity, clutter shared environments, or overwrite expected files if paths are not tightly constrained.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The dataDescription field is written only in Chinese (包含3438期双色球历史数据(2003-2026年)) and does not indicate that the skill is Chinese-language or offer any language/locale choice. Under the 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.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON file uses Chinese field names and recommendation text throughout, including user-facing values such as "推荐方案" and "投注方式". Because the content is entirely localized to Chinese with no indication of optional language selection or documented locale restriction, it may violate the language/locale policy for natural-language content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

This JSON file uses Chinese-only field names and labels throughout, such as "生成时间", "分析期数", and strategy names in "预测结果". The provided policy flags natural-language locale constraints when a specific language is imposed without user choice or a documented region-specific justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The JSON uses Chinese-only field names and descriptive text throughout, such as keys like "生成时间" and strategy descriptions like "高频热号为主,稳定性高". This indicates a language-specific output format without any visible indication of user choice, opt-in, or documented region-specific justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This JSON uses Chinese-only field names and descriptive text throughout, such as keys like "生成时间" and strategy descriptions like "高频热号为主,稳定性高". Under the policy, a skill should not force a specific language or locale unless it provides user opt-in or clearly documents a justified regional constraint.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.