T05 · Unauthorized Access and Privilege Escalation
Note
- Location
- scripts/crawlora.sh:68
- Finding
- Undocumented Roblox API Routes Exceed the Declared Skill Scope## Vulnerability Details **File Location**: `scripts/crawlora.sh:68-71`; `reference/endpoints.md:189-213` **Vulnerability Type**: `T05: Unauthorized Access and Privilege Escalation` **Risk Level**: Low ### Vulnerable Code ```sh /roblox/badges) ;; /roblox/game) ;; /roblox/rankings) ;; /roblox/search) ;; ``` The corresponding endpoint documentation exposes all four routes: ```md ## Roblox (4) ### `roblox_badges` - **HTTP:** `GET /roblox/badges` ### `roblox_game` - **HTTP:** `GET /roblox/game` ### `roblox_rankings` - **HTTP:** `GET /roblox/rankings` ### `roblox_search` - **HTTP:** `GET /roblox/search` ``` ### Technical Analysis `SKILL.md` declares that the Skill researches games through Steam and the PlayStation Store. It does not declare Roblox support. Nevertheless, the executable route allowlist permits four Roblox endpoints, and the endpoint reference advertises them. These endpoints reportedly return public catalog information and do not expose Roblox account, purchase, or server data. The issue is therefore not direct account compromise. However, the routes expand the authenticated API surface beyond the minimum privileges necessary for the Skill's declared functionality. Because the helper attaches the user's Crawlora API key to these requests, an agent can consume the user's API quota for an undeclared platform. The fixed API host and explicit route allowlist limit the exposure. ### Attack Path 1. A user installs or loads the Skill based on its declared Steam and PlayStation functionality. 2. An untrusted instruction or agent action invokes `scripts/crawlora.sh` with one of the undocumented `/roblox/*` paths. 3. The path passes the helper's route allowlist. 4. The helper attaches the user's `CRAWLORA_API_KEY`. 5. The authenticated request reaches Crawlora and may consume the user's API credits for functionality outside the declared scope. ### Impact Assessment The obtain ...[truncated 484 chars]
- Remediation
- ## Remediation Suggestions 1. Remove the four `/roblox/*` entries from the route allowlist if Roblox is not required. 2. Remove the Roblox section from `reference/endpoints.md`. 3. Generate the executable allowlist from a single reviewed manifest to prevent documentation and implementation from drifting. 4. Add an automated test that compares routes allowed by the helper with platforms explicitly declared in `SKILL.md`. 5. If Roblox support is intentional, explicitly disclose it in the Skill name, description, usage criteria, examples, and security documentation. 6. Retain only the Roblox endpoints strictly necessary for the newly declared purpose.
