T05 · Unauthorized Access and Privilege Escalation
Warning
- Location
- scripts/crawlora.sh:60
- Finding
- Executable helper exposes undeclared Bilibili and Patreon capabilities## Vulnerability Details **File Location**: `scripts/crawlora.sh:60-67, 83-86`; supporting documentation at `reference/endpoints.md:9, 437-511` **Vulnerability Type**: Least-privilege violation through capabilities outside the declared Skill scope **Risk Level**: Medium ### Vulnerable Code ```sh /bilibili/anime-home) ;; /bilibili/autocomplete) ;; /bilibili/guochuang-home) ;; /bilibili/must-watch) ;; /bilibili/popular) ;; /bilibili/ranking) ;; /bilibili/vertical-home) ;; /bilibili/weekly) ;; ``` ```sh /patreon/creator) ;; /patreon/creator/tiers) ;; /patreon/explore) ;; /patreon/rss) ;; ``` The endpoint reference confirms that these capabilities are included: ```md **80 endpoints across 11 platform group(s).** ``` ```md ## Bilibili (8) ``` ```md ## Patreon (4) ``` ### Technical Analysis The Skill metadata declares social-media research across nine platforms: Instagram, TikTok, Threads, Bluesky, X, Pinterest, LinkedIn, Facebook, and Reddit. However, the executable route allowlist also permits eight Bilibili endpoints and four Patreon endpoints. Because these additional platforms are not part of the declared functionality, exposing them exceeds the minimum capabilities needed to implement the advertised Skill. Requests to these routes are authenticated using the user's Crawlora API key and may consume that account's credits. The issue does not grant operating-system privileges or allow requests to arbitrary hosts. The helper uses a fixed Crawlora HTTPS origin. The excess privilege is limited to authenticated Crawlora API capabilities outside the Skill's declared platform scope. ### Attack Path 1. An untrusted prompt, workflow, or Agent-generated instruction requests data from a Bilibili or Patreon endpoint. 2. The Agent invokes `scripts/crawlora.sh` with one of the undeclared paths, such as `/patreon/rss`. 3. The helper accepts the path because it appears in its internal allowli ...[truncated 955 chars]
- Remediation
- ## Remediation Suggestions 1. Remove all Bilibili and Patreon paths from this Skill's executable allowlist. 2. Remove the corresponding sections from `reference/endpoints.md`. 3. Generate the executable allowlist and endpoint documentation from a Skill-specific manifest containing only the nine declared platforms. 4. Add an automated test that compares the platforms and routes declared in `SKILL.md` against the executable route allowlist. 5. If Bilibili and Patreon support is intentional, explicitly disclose both platforms in the Skill metadata, usage documentation, privacy description, and credit-cost guidance. 6. Consider separating unrelated platform families into distinct Skills and API helpers so each Skill receives only the capabilities necessary for its stated purpose.
