T05 · Unauthorized Access and Privilege Escalation
Warning
- Location
- SKILL.md:16
- Finding
- Unbounded Access to External Agent Memory## Vulnerability Details **File Location**: `SKILL.md`, lines 16–22 **Vulnerability Type**: Unauthorized access beyond the Skill's local state boundary **Risk Level**: Medium **Complete Vulnerable Snippet**: ```markdown Before doing anything else, check for existing state: 1. Look in `references/` next to this file for `profile.md`, `tracker.md`, `lessons.md`, `log.md`. 2. The applicant may have been using Jobstead from a different surface last time, so also check whatever else this environment makes available for persistent state. The exact options vary by tool and aren't listed exhaustively here — examples include a project's `MEMORY.md`, an MCP memory store, or the model's own native memory. ``` ### Technical Analysis The Skill requires the Agent to inspect persistent storage outside the package's own `references/` directory. The instruction is open-ended—“whatever else this environment makes available”—and provides no namespace restriction, exact path allowlist, relevance test, ownership check, or requirement for informed user authorization. This violates least privilege because the legitimate task only requires access to Jobstead-owned state. General project memory, MCP memory, or native model memory may contain unrelated information belonging to other projects, workflows, or users. The phrase “before doing anything else” further makes this broad search a mandatory initialization action rather than an exceptional, user-approved recovery mechanism. An attacker could exploit this behavior by placing misleading Jobstead-like records in an accessible general memory store. The Agent may then load those records as authoritative applicant state, disclose them in its session summary, or use them during fit assessments. ### Attack Path 1. An attacker or unrelated workflow writes sensitive or misleading content to a project `MEMORY.md`, an MCP memory store, or another persistent source visible to the Agent. 2. A user invokes the Jobstead Skill. 3 ...[truncated 1222 chars]
- Remediation
- ## Remediation Suggestions 1. Restrict default state loading to: - `references/profile.md` - `references/tracker.md` - `references/lessons.md` - `references/log.md` 2. Remove the instruction to search “whatever else” the environment exposes. 3. Permit external-state recovery only after explicit user approval. 4. Require the user to provide an exact file path or select a dedicated Jobstead namespace. 5. Do not enumerate general project, MCP, or native Agent memory. 6. Validate imported state against a documented schema and show the proposed import before using or persisting it. 7. Keep external records untrusted until the user confirms that they belong to the current applicant. 8. Avoid surfacing sensitive values during discovery; initially report only the source and metadata needed for confirmation. A safer instruction would be: ```markdown Load only the four files under this Skill's `references/` directory. If the user wants to recover state from another source, ask for explicit permission and an exact Jobstead-specific path or namespace. Do not search or enumerate general project, MCP, or native Agent memory. ```
