T07 · Tool Hijacking and Spoofing
- Location
index.ts:55- Finding
Fabricated Search Results Presented as Genuine Web Search Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill claims to enhance web search, but its code does not perform real web searches and also uses an unsafe local temporary file for search state.
Do not rely on this as a real web search tool unless it is changed to call a verifiable search provider and to store state safely. Installing it may produce simulated results and may create, overwrite, or delete a predictable temporary file in the working directory.
index.ts:55Fabricated Search Results Presented as Genuine Web Search Output
index.ts:83Predictable Shared Temporary File Enables Cross-Session Contamination and Symlink-Based File Overwrite
index.ts:88Network Fetch API Incorrectly Used for Local File Access
The skill documentation is entirely in Chinese and provides no indication that users may interact in another language or choose their preferred locale. Under the policy, forcing a specific language without opt-in can be a natural-language policy violation unless the locale restriction is clearly documented and justified.
The skill advertises saving intermediate results to temporary storage and supporting resume behavior, but it does not warn users that search content may be persisted beyond a single response. This creates a privacy and data-handling risk because users may provide sensitive queries or retrieved content without realizing it will be stored, even temporarily.
The trigger phrase '帮我查找 [搜索内容]' is extremely broad and overlaps with normal conversational requests, which can cause the skill to activate unintentionally during routine user interactions. In a search skill that stores intermediate results and supports resumable operation, accidental activation increases the chance of unexpected data collection, persistence, and tool use without clear user awareness.
The natural-language comments, trigger handling, and user-facing error/output strings are all written in Chinese, and the trigger parsing specifically expects Chinese phrasing such as '帮我', '查我', or '搜我'. This imposes a language-specific interaction model without offering user opt-in or documenting a justified locale restriction.
The code treats webFetch(path, { extractMode: "text" }) as if it were a local file read, which blurs the boundary between local state and network-accessible resources. This can cause the tool to ingest attacker-controlled content if webFetch resolves non-local targets or special URI schemes, making the temporary-results logic susceptible to untrusted input, data confusion, or SSRF-like behavior depending on the runtime.
The skill writes to and deletes a local file in the current working directory without a clearly justified need and without isolation from other runs. Even though the filename is constant and not user-controlled, this creates unintended side effects, can overwrite pre-existing files with the same name, and introduces cross-session data leakage or tampering risks in shared environments.
The skill performs write and delete operations on the local filesystem without informing the user or obtaining confirmation. In agent environments, hidden side effects are dangerous because they violate least surprise, can destroy pre-existing files with the same name, and make it harder for users to assess what the tool will modify on their system.
The manifest description is entirely in Chinese and presents the skill as a Chinese-language experience without indicating any user language choice or locale-specific scope. This can violate language/locale policy when a skill implicitly forces one language for all users without opt-in or justification.
No suspicious patterns detected.