Back to skill

Security audit

排列五分析工具

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it merits review because it mixes misleading lottery-prediction claims with an unsafe calculator script and an unnecessary network-capable permission.

Review before installing. Treat all lottery guidance as entertainment, not prediction, and avoid using the calculator with untrusted input until numeric validation is added. The publisher should remove the unused web_search permission and remove or clearly relabel unsupported prediction and accuracy claims.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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)

T09 · Insecure Skill Coding Practices

Error
Location
scripts/main.sh:98
Finding

Unvalidated User Input Evaluated as bc Program Code

Content
View full analysis
Remediation
View remediation
0`. - Enforce `0 < price <= 1`. - Accept only `yes` or `no` for the result. 2. Limit input length and decimal precision to prevent resource exhaustion. 3. Avoid constructing executable calculator programs from raw user input. Parse values first and pass only normalized numeric representations to the calculation layer. 4. Use `printf` instead of `echo` for predictable data handling, although this alone does not resolve the injection vulnerability. 5. If `bc` remains necessary, reject any value that does not match a strict anchored pattern before invocation. For example: ```bash is_decimal() { [[ $1 =~ ^([0-9]+)([.][0-9]{1,2})?$ ]] } if ! is_decimal "$amount"; then printf '%s\n' "Invalid amount" >&2 exit 1 fi if ! is_decimal "$price"; then printf '%s\n' "Invalid price" >&2 exit 1 fi ``` 6. Perform explicit range checks after lexical validation and handle zero denominators safely. 7. Consider replacing `bc` with a programming environment or utility that accepts parsed numeric arguments as data rather than interpreting user-derived program text. 8. Add regression tests using multiline input, shell-escape characters, operators, very long numbers, zero, negative values, and malformed decimals. ]]>

T05 · Unauthorized Access and Privilege Escalation

Note
Location
SKILL.md:4
Finding

Unused Network-Capable Tool Violates Least-Privilege Design

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (3)

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly states that lottery outcomes are random and cannot be predicted, but then presents concrete 'analysis' and selection methods, including hot/cold number strategies and a claimed '78% accuracy' kill-number formula. This contradiction can mislead users into believing the tool offers statistically meaningful predictive power, increasing the risk of harmful financial decision-making despite the disclaimer text.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

This shell script’s user-facing comments and prompts are written in Chinese, and the runtime output throughout the file also assumes Chinese comprehension. Under the policy for natural-language issues, forcing a specific language without user opt-in is a locale-policy concern unless the restriction is explicitly justified.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
89% confidence
Finding

The inline comment says the function gets the last 30 draw records, and another comment says a real API call should exist, but the implementation only echoes that the feature is under development. This is an intent/documentation mismatch because the code documentation describes a data-retrieval behavior that the code does not perform.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.