Back to skill

Security audit

Zhouyi Divination

Security checks for vulnerabilities and agentic risk

Overview

The skill performs the advertised divination workflow, but it requires reading a hard-coded personal profile and automatically saving every result to an iCloud-synced folder without per-use consent.

Review before installing. This skill should only be used if you are comfortable with it reading the named birth-chart file and automatically writing divination reports, including personal questions and analysis, into an iCloud-synced folder. Prefer a version that asks before reading profile data, lets you choose the source file, makes saving opt-in, and clearly explains retention and deletion.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:13
Finding

Unconsented Sensitive-Data Access and Automatic Cloud Persistence

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 13–24
Vulnerability Type: Sensitive personal-data access and plaintext cloud persistence
Risk Level: Medium

Vulnerable Code Snippet

The following is a faithful English translation of the relevant instruction block:

markdown
Before performing any divination, birth information must first be obtained from USER.md, and then the subject's base data file must be read:
`/Users/taisenzhuang/.openclaw/workspace/zhouyi-divination/mingzhu.md`

This file contains the subject's Eight Characters, Five Elements, fortune cycles, annual fortune, and other base information. The skill itself does not store personal information.

## Result Archiving Rules (Mandatory)

Every divination result must be saved automatically and immediately after completion. User authorization is not required. This is a mandatory part of the process.

Save to the iCloud archive directory:

**Root directory**: `~/Library/Mobile Documents/com~apple~CloudDocs/Documents/OpenClaw/报告/运势/`

Technical Analysis

The Skill mandates reading birth information from USER.md and a hard-coded personal file outside the project workspace. It then requires every question and generated report to be written automatically to an iCloud-synchronized directory without explicit user consent.

Birth details, fortune-profile data, and users' questions may constitute sensitive personal information. The resulting reports can also reveal private matters involving health, finances, employment, relationships, or other life decisions. Persisting these records in plaintext increases their exposure to local users, applications with filesystem access, cloud synchronization, backups, and other devices connected to the same iCloud account.

The mandatory archive behavior contradicts the statement that the Skill does not store personal information. Although the audited file contains no direct network request, writing in ...[truncated 2145 chars]

Remediation
View remediation

Remediation Suggestions

  1. Require explicit, informed user consent before reading any profile file or persisting a report.
  2. Explain which data will be read, where the output will be stored, whether cloud synchronization may occur, and how long it will be retained.
  3. Remove the hard-coded absolute home-directory path. Accept a user-selected file within an approved workspace or use a narrowly scoped application-data directory.
  4. Make archival opt-in rather than mandatory, and provide a non-persistent mode as the default.
  5. Store reports locally by default and require separate confirmation before using any cloud-synchronized directory.
  6. Apply data minimization by excluding raw birth details and unrelated profile fields from reports unless they are necessary and explicitly requested.
  7. Redact sensitive identifiers and private third-party information before saving.
  8. Protect retained reports using restrictive filesystem permissions and encryption appropriate to the deployment environment.
  9. Provide configurable retention limits and a deletion mechanism covering local files and synchronized copies where feasible.
  10. Correct the documentation so it accurately discloses that generated reports are stored and may contain personal information.
  11. Validate all generated folder and file names to prevent user-controlled topics from introducing path traversal or unsafe filenames.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (6)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill states it does not store personal information, yet it instructs reading birth data from local files and automatically saving divination reports to iCloud. That creates a clear privacy and data-handling mismatch that can mislead users and operators about collection, processing, and persistence of sensitive personal data.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The documentation is internally contradictory: it says the skill does not store personal information while simultaneously requiring persistent iCloud storage of divination content. This kind of deceptive or inaccurate disclosure prevents informed consent and can cause sensitive astrological, biographical, and query data to be retained without users understanding that fact.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill forces automatic saving of each divination result to iCloud without any warning, consent, or per-use confirmation. Since divination sessions may contain intimate questions, birth details, and sensitive life circumstances, silent cloud persistence materially increases privacy harm and may violate user expectations or policy requirements.

Content

No source excerpt is available for this finding.

Ssd 3

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The skill explicitly directs automatic archival of each session, including user questions and personal astrological details, to a persistent iCloud path without user request. In this context, the archived content is especially sensitive because it can reveal identity-linked birth data, beliefs, health, relationships, finances, and decision-making concerns across repeated sessions.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The skill is described and instructed entirely in Chinese and frames the agent as a fixed Chinese-language divination system, with no indication that the user may choose another language. Under the language/locale policy criterion, this is a natural-language locale constraint without opt-in or explicit justification as a region-specific tool.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

Mandatory automatic archival to an iCloud directory is not necessary for answering a divination query and expands the skill's data access and exfiltration surface. Because reports include the user's questions and derived personal analysis, this unjustified persistence increases privacy risk if the cloud account, synced devices, or filesystem permissions are exposed.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.