T05 · Unauthorized Access and Privilege Escalation
Warning
- Location
- SKILL.md:69
- Finding
- Unnecessary Cross-Skill Access and Persistent Storage of Personal Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:69-100`; corroborating cache instruction at `SKILL.md:218-220` **Vulnerability Type**: Cross-Skill data access and automatic plaintext persistence of personal profile data **Risk Level**: Medium ### Vulnerable Code ```markdown **Reading**: Before running, check in this order: 1. This directory's `MEMORY.md` — use first 2. `fortune-hub/MEMORY.md` in the same repo (if it exists) — fill in any missing base profile fields If data is available, use it directly without asking again. **Writing**: After collecting user info, write it to **this directory's** `MEMORY.md`: ```markdown # User Info ## Basic Profile - Date of birth: YYYY-MM-DD - Birth time: HH:MM (24-hour) - Birthplace: City name - Birth time zone: UTC+X ## Chart Cache - Sun sign (sidereal): Sign, approx. ° - Moon sign (sidereal): Sign, approx. ° - Moon Nakshatra: Name (Nakshatra #N) - Nakshatra ruling planet: Planet - Birth Dasha planet: Planet - Current Mahadasha: Planet (YYYY–YYYY) ``` | Field | Required | How to ask | |-------|---------|------------| | Date of birth | ✅ | "Please share your birth date (year, month, day)" | | Birth time | ✅ Needed for Ascendant and precise planetary positions | "What time were you born? (If unsure, a rough time of day is fine — it affects the Ascendant calculation)" | | Birthplace | ✅ Needed for time zone and geographic latitude | "What city or region were you born in?" | **Updating**: Update `MEMORY.md` when the user requests changes. ``` Additional persistence instruction: ```markdown ### Step 5: Save Results After the first complete reading, cache the chart estimates to `MEMORY.md`. Subsequent single-module queries can draw from the cache directly. ``` ### Technical Analysis The Skill instructs the agent to read personal profile information from both its own memory and the memory belonging to a sibling Skill. It then directs the agent to use that information without asking the user again and ...[truncated 2696 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove access to `fortune-hub/MEMORY.md` unless cross-Skill profile sharing is essential to the documented capability. 2. Require explicit, informed user consent before reading any sibling Skill's memory. Identify the source and enumerate the fields that will be imported. 3. Confirm that stored information belongs to the current user and remains accurate before using it in calculations. 4. Default to session-only processing. Do not create or update `MEMORY.md` unless the user explicitly opts into persistence. 5. Minimize stored data. Prefer caching non-identifying calculation results, and avoid retaining exact birth time and birthplace unless necessary. 6. Define a retention period and provide commands or documented procedures to view, correct, and delete stored data. 7. Prevent automatic propagation between memory files. Imported data should not be copied into another persistent store without separate consent. 8. Apply restrictive file permissions and ensure memory files are excluded from version control, logs, exported artifacts, and shared repositories. 9. Record provenance and freshness metadata for any retained fields so stale or cross-user data can be detected. 10. Replace “use it directly without asking again” with a confirmation step that displays the proposed values and allows correction before processing. ]]>
