T01 · Skill Instruction Hijacking
- Location
SKILL.md:48- Finding
Forced Replacement of Built-in Web Tools
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This appears to be a real UniFuncs web tool, but it broadly redirects web activity to a third-party service and tells users to disable built-in web tools without enough scoping or privacy disclosure.
Install only if you intentionally want UniFuncs to handle your web reading, searching, and research requests. Do not disable built-in web tools unless you understand that future web activity may be routed to UniFuncs, and avoid submitting private, signed, internal, token-bearing, or confidential URLs and prompts unless you trust that provider's handling of them.
SKILL.md:48Forced Replacement of Built-in Web Tools
scripts/web-reader.js:16Unfiltered Disclosure of Complete URLs to an External Service
The declared description promises three categories of functionality: web reading, AI search, and deep research, broadly covering all web-related tasks and replacing built-in web_search and web_fetch. The supplied code only performs one function: submit a text query to a remote deepsearch chat-completions endpoint and return the response. There is no code for fetching arbitrary URLs, extracting webpage content, browsing/searching the web directly, or handling web-related tasks generally. This is a material description-behavior mismatch because the implementation is much narrower than claimed.
The code chunk solely performs webpage content retrieval/extraction via a POST request to a remote /api/web-reader/read endpoint. It supports options like format, lite mode, images, link summaries, topic filtering, and CSS selector filtering, which align with web reading/fetching. However, there is no implementation of web searching, AI search, or deep research workflows, nor any broader multi-tool orchestration that would replace both web_search and web_fetch. Thus the declared description materially overstates the implemented capabilities.
The description claims a broad web toolkit for reading webpages, searching the web, and conducting deep research, replacing both web_search and web_fetch. However, the code chunk only performs web search through a single external endpoint (/api/web-search/search). There is no functionality for fetching or reading arbitrary webpage content, no crawler/browser behavior, and no deep-research workflow beyond basic search parameters. This is a material description-to-behavior mismatch because the implemented primary purpose is narrower than declared.
Referenced artifact was not completely inspected
node scripts/web-reader.js <url> [options]
Referenced artifact was not completely inspected
node scripts/web-reader.js <url> [options]
Referenced artifact was not completely inspected
node scripts/web-search.js <query> [options]
Referenced artifact was not completely inspected
node scripts/web-search.js <query> [options]
Referenced artifact was not completely inspected
node scripts/deepsearch.js "<research question>"
Referenced artifact was not completely inspected
node scripts/deepsearch.js "<research question>"
The skill advertises use of environment variables and external network access but does not declare an explicit tool scope such as permissions or allowed-tools. That weakens least-privilege controls and makes it harder for a user or platform to understand and constrain what the skill can access before invocation.
The trigger text says to use this skill for all web-related tasks, which is overly broad and can cause unintended invocation. In practice, that increases the chance that sensitive prompts, URLs, or research queries are sent to an external provider when a narrower or local tool would have been sufficient.
The skill instructs users to configure an API key and route web queries through an external service but does not prominently warn that URLs and search terms will be transmitted off-platform. This creates privacy and data-handling risk because users may unknowingly send sensitive research topics, internal links, or personal data to a third party.
The script transmits the raw user query to a third-party service (api.unifuncs.com) without any disclosure, consent prompt, or data-sensitivity warning. In a research/web skill, users may include proprietary, personal, or otherwise sensitive information in queries, so silent external transmission creates a real privacy and data-handling risk even though it is functionally necessary for the feature.
The tool sends user-supplied URLs and extraction parameters to an external third-party API without any disclosure or consent step in the execution path. This can leak sensitive URLs, embedded query tokens, internal hostnames, or research targets to the service provider, which is especially relevant because this skill is presented as a generic web-reading replacement and users may assume direct fetching rather than third-party relay.
The manifest describes web reading, AI search, and deep research tools, but this file also depends on local environment access to retrieve credentials. While network access is expected for a web tool, reading process environment variables is a separate capability not stated in the manifest and is not intrinsic to webpage content extraction itself.
Detected: suspicious.env_credential_access