T05 · Unauthorized Access and Privilege Escalation
- Location
SKILL.md:27- Finding
Unscoped access to sensitive mobile notifications
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a Review item because it can search broad mobile notifications for football chatter and includes an insecure public-source scraper, though I found no destructive behavior or confirmed data exfiltration.
Install only if you are comfortable with the agent searching recent mobile notifications for match-related chatter. Prefer providing a narrow notification file, exact apps/groups, and a short time range. Treat public-source results as untrusted because the bundled scraper has TLS and source-validation weaknesses.
SKILL.md:27Unscoped access to sensitive mobile notifications
scripts/probe_cn_football_sources.py:185TLS certificate verification disabled for external content retrieval
scripts/probe_cn_football_sources.py:231Domain allowlist bypass through substring hostname matching
The skill is presented as a conversation-kit generator, but its workflow includes source probing, structured crawling, command execution, and scraping-diagnostics generation that materially exceed or differ from the declared purpose. This mismatch undermines informed consent and can conceal data collection or tool use that users would not reasonably expect from the description alone.
The code creates an unverified SSL context with ssl._create_unverified_context(), disabling certificate validation for all HTTPS requests. This makes the scraper susceptible to man-in-the-middle attacks, allowing attackers on the network path to tamper with fetched pages, inject false sports content, or return malicious data while appearing to come from trusted sites.
The skill instructs use of network access, file output (--out /tmp/...json), and command execution behaviors, but does not declare explicit tool scope or permissions. That creates an authorization gap where the runtime may permit broader capabilities than users expect, reducing transparency and making abuse or accidental overreach harder to detect.
The skill describes searching mobile notifications, fan groups, and recent device-derived signals, including a default time window and potentially unrestricted scope, without a clear upfront privacy warning or explicit opt-in language. Notifications can contain sensitive personal, social, and contextual data, so silent or weakly disclosed access materially increases privacy and data-minimization risk.
The skill authorizes autonomous decisions such as inferring match identity and, more importantly, querying recent notifications without limiting groups or applications when context is deemed needed. In a skill that touches device notifications and external retrieval, this reduces meaningful user control and can expand data access beyond what the user explicitly requested.
If `who to follow' is not enough to uniquely determine the match, public information will be used to infer it first; if there are still multiple candidate matches, only one confirmation will be asked.
If `what to focus on` is empty, no output mode is specified, or it only says "module output" but does not list specific modules, directly use `full` to output in full without asking.If `Which groups and applications to follow` is empty, you can still generate a discussion package based only on public information; when notification context is needed, query recent notifications without limiting the scope of groups and applications. Users are not required to provide fan group notifications. Notification refinement is only performed when the user requests a notification/group chat context, provides a notification file, or includes a notification scope in Groups and Apps to Follow.
## Output mode
The instruction 'Chinese output is used by default unless the user specifies other languages' imposes a language choice on the user. This is a natural-language policy concern because it defaults to a specific locale/language rather than offering a neutral choice or asking user preference first.
The template explicitly encourages extracting conversation topics from a user's mobile phone notifications and fan-group signals, but it provides no privacy guardrails, consent requirement, minimization rule, or warning about handling personal data. In this skill's context, that creates a real risk of processing sensitive personal or group information beyond user expectations, especially when notification retrieval is integrated into the workflow.
The template instructs users to generate copywriting to post directly on "Moments/Weibo," which implies a specific language/locale and platform context without any opt-in or alternative. This is a natural-language locale policy concern because the file does not indicate that the skill is region-specific or that users may choose another language or platform.
The script actively probes third-party search engines and Chinese sports sites using direct HTTP requests, which expands behavior beyond a narrowly scoped notification-retrieval skill and creates ungoverned outbound network access. In an agent environment, this can bypass expected platform retrieval controls, increase privacy/compliance risk, and fetch untrusted content from arbitrary external pages for downstream use.
The HTTP request hard-codes Accept-Language: zh-CN,zh;q=0.9,en;q=0.6, which steers remote services toward a specific language/locale regardless of user preference. This is a natural-language policy concern because the script does not expose any option for users to choose or override the locale.
The line instructs the user to 'just say and pronounce them,' and the document is framed as a fixed set of phrases to use directly. Because the template provides no option to choose language or locale, it may implicitly enforce a particular wording style without user opt-in.