T09 · Insecure Skill Coding Practices
- 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: MediumVulnerable 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.mdand 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
- Require explicit, informed user consent before reading any profile file or persisting a report.
- Explain which data will be read, where the output will be stored, whether cloud synchronization may occur, and how long it will be retained.
- 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.
- Make archival opt-in rather than mandatory, and provide a non-persistent mode as the default.
- Store reports locally by default and require separate confirmation before using any cloud-synchronized directory.
- Apply data minimization by excluding raw birth details and unrelated profile fields from reports unless they are necessary and explicitly requested.
- Redact sensitive identifiers and private third-party information before saving.
- Protect retained reports using restrictive filesystem permissions and encryption appropriate to the deployment environment.
- Provide configurable retention limits and a deletion mechanism covering local files and synchronized copies where feasible.
- Correct the documentation so it accurately discloses that generated reports are stored and may contain personal information.
- Validate all generated folder and file names to prevent user-controlled topics from introducing path traversal or unsafe filenames.
