T01 · Skill Instruction Hijacking
- Location
scripts/scout.py:74- Finding
Untrusted RSS Content Enters the Agent Workflow Without Prompt-Injection Controls
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a disclosed news-fetching skill with ordinary network and dependency risks, but no evidence of hidden persistence, data theft, or destructive behavior.
Install this only if you are comfortable with it making external news requests and installing Python packages from your configured package index. Prefer a virtual environment, pin dependencies, remove the stale duckduckgo-search install instruction, and treat all fetched news titles, snippets, and article text as untrusted content.
scripts/scout.py:74Untrusted RSS Content Enters the Agent Workflow Without Prompt-Injection Controls
README.md:17Unpinned and Unnecessary Third-Party Dependency Installation
The code broadly matches the high-level theme of aggregating AI and investment news, but several important parts of the declared description are not implemented. It fetches news from RSS and Bing News RSS, deduplicates results, and returns them as JSON. However, there is no logic for ranking by heat, no impact-analysis generation, and no visible implementation of the promised distinction between global and domestic China AI news except whatever may exist externally in the config file. Likewise, the stated focus on key U.S. stock market movements is not enforced by the code itself. The trigger description refers to user news queries, while the code is a standalone CLI fetcher. These are material description-to-behavior gaps, so this should be flagged as a mismatch.
This markdown file contains natural-language statements enforcing Chinese as the required language, such as '全中文文档和注释'. Under the policy, forcing a specific language without user opt-in or a clearly justified regional constraint is a language/locale policy violation.
Lines in this section describe '中文覆盖 100%' and '中文输出要求', which indicate the skill is designed to always use Chinese output. Because no user choice or justified locale limitation is provided in this file, this appears to violate the language/locale policy.
The README advertises broad natural-language triggers like “新闻简报” and “今日新闻”, which are common user requests rather than narrowly scoped invocation phrases. In an agent environment, this can cause the skill to activate unintentionally on ordinary conversation, leading to unnecessary network access, unexpected tool execution, or the skill intercepting requests better handled by safer/default flows.
The skill instructs the agent to install dependencies and run a script that performs network access and likely reads local files, but it declares no explicit tool scope or permissions boundary. That increases the chance of unintended capability use and makes review/enforcement harder if the skill is invoked automatically.
The description says the skill triggers when the user asks news-related questions, but that condition is vague and may match a large set of ordinary conversation. In an agent environment, ambiguous invocation criteria can cause unintended tool activation and broaden the skill's operational footprint.
The trigger keywords are broad everyday terms like '新闻' and '简报', which can cause the skill to activate in contexts the user did not intend. Because the skill then encourages network fetching and script execution, accidental activation can lead to unnecessary external requests and tool use.
The rule "所有交流和分析使用中文" forces a specific language for all interactions. This is a language-policy constraint presented as mandatory and does not offer the user a choice or opt-in.
This code file contains user-facing natural language in the module docstring that forces a specific language/locale. The policy explicitly calls for flagging language or locale constraints when the skill does not offer a user choice or document a justified regional limitation.
The script emits user-facing strings for errors, help text, examples, and debug output only in Chinese. Because the file does not offer language selection or clearly justify a Chinese-only locale, this is a natural-language policy violation under the language/locale rule.
This JSON config includes both English and Chinese sources and search queries via explicit language fields and mixed-language query strings, but it does not document how the skill chooses which language content to use for a given user. That can create a locale-policy issue if the skill presents or prioritizes one language without user opt-in or a clearly justified region-specific constraint.
No suspicious patterns detected.