T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:65- Finding
Silent Cross-Skill Access and Plaintext Persistence of Personal Profile Data
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:65-89andSKILL.md:233-235
Vulnerability Type: Cross-skill data access and insecure storage of personal data
Risk Level: MediumVulnerable Code
SKILL.md:65-89:markdown ## User Context This Skill requires the user's birth date, birth time, and sex to complete its calculations. **Read**: Before execution, inspect these locations in order: 1. This directory's `MEMORY.md` — use as the primary source 2. The same repository's `fortune-hub/MEMORY.md`, if present — use it to supplement missing profile fields If usable data is available, use it directly without asking the user again. **Write**: After collecting user information, write it to this directory's `MEMORY.md`: # User Information ## Basic Profile - Gregorian birth date: YYYY-MM-DD - Birth time: XX hour (HH:00-HH:59) - Sex: male/female - Birthplace: optional ## Calculation Cache - Year pillar: heavenly stem and earthly branch - Month pillar: heavenly stem and earthly branch - Day pillar: heavenly stem and earthly branch - Hour pillar: heavenly stem and earthly branch - Five-element distribution - Day-master strength - Favorable element - Unfavorable elementSKILL.md:233-235:markdown ### Step 5: Save Results After the first complete calculation, cache the four pillars, five-element distribution, day-master strength, favorable element, and unfavorable element in `MEMORY.md` so later annual-fortune or major-cycle queries do not require recalculation.The snippets above are faithful English renderings of the instructions in the source file.
Technical Analysis
The Skill directs the Agent to read personal profile information from both its own persistent memory and a sibling Skill's
fortune-hub/MEMORY.md. It further instructs the Agent to use imported information without asking the user again. This crosses the expected isolation boundary between Skills and provides no field-level authorization, provenance vali ...[truncated 2809 chars]- Remediation
View remediation
Remediation Suggestions
-
Require explicit consent before reading persistent data
- Inform the user which file and fields will be read.
- Require affirmative approval before importing data from another Skill.
- Never interpret previous consent in a different Skill as consent for the current Skill.
-
Remove silent cross-Skill imports
- Do not read
fortune-hub/MEMORY.mdby default. - If interoperability is necessary, use an explicit, user-approved import operation.
- Restrict imports to named fields and display those fields for confirmation before use.
- Do not read
-
Require consent before persistent storage
- Make storage opt-in rather than automatic.
- Explain what will be stored, why it is needed, and how long it will remain.
- Provide a session-only mode that performs calculations without writing a memory file.
-
Minimize collected and retained data
- Do not retain birthplace unless a requested calculation requires it.
- Prefer retaining non-identifying derived results instead of exact birth information.
- Avoid storing fields that can be recalculated at low cost.
-
Protect stored data
- Use platform-provided protected memory storage where available.
- If a local file must be used, require restrictive owner-only permissions.
- Keep memory files outside shared or version-controlled project directories.
- Ensure
MEMORY.mdis excluded from source control and packaging.
-
Add lifecycle controls
- Define a retention period and automatic expiration.
- Provide commands to review, correct, export, and delete stored data.
- Delete superseded or stale records rather than indefinitely accumulating them.
-
Bind data to the correct user and context
- Associate stored data with an authenticated user or isolated session where supported.
- Confirm the imported birth profile before every new analysis.
- Reject or quarantine sibling-memory data whose provenance cannot be establishe ...[truncated 240 chars]
-
