web-fetcher
Warn
Audited by Gen Agent Trust Hub on Mar 28, 2026
Risk Level: MEDIUMCOMMAND_EXECUTIONEXTERNAL_DOWNLOADSDATA_EXFILTRATIONPROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The script
scripts/fetch.pyexecutes theopenclicommand viasubprocess.runto handle specific platforms (Zhihu, Reddit, Twitter, Weibo). - Evidence: In
scripts/fetch.py, thefetch_via_openclifunction usessubprocess.run(cmd, ...)wherecmdincludes arguments derived from user-provided URLs. - Vulnerability: Specifically, the Reddit route uses
m.string(the entire input URL) as a command argument:(r"reddit\.com/r/\w+/comments/", lambda m: ["reddit", "read", m.string]). An attacker could provide a URL containing CLI flags or specially crafted strings to influence the behavior of theopenclitool. - [EXTERNAL_DOWNLOADS]: The documentation (
README.mdandSKILL.md) instructs users to install a third-party package and a browser extension from a non-standard source. - Evidence: Users are directed to install
@jackwener/openclivia npm and manually load aopencli-extension.zipbrowser extension from GitHub Releases. This manual installation bypasses the security protections of official extension stores. - [DATA_EXFILTRATION]: The skill transmits user-provided URLs to multiple third-party proxy services to convert content to markdown.
- Evidence: URLs are sent to
r.jina.ai,defuddle.md, andmarkdown.newas part of the fallback chain. This exposes the user's browsing/fetching intent and the specific URLs to these service providers. - [PROMPT_INJECTION]: The skill acts as a conduit for untrusted data, making it a primary surface for indirect prompt injection.
- Ingestion points:
scripts/fetch.pyretrieves content from arbitrary external URLs. - Boundary markers: Absent. The fetched content is printed directly to stdout without delimiters or instructions for the agent to treat it as untrusted data.
- Capability inventory: The skill utilizes network access (
urllib.request) and shell command execution (subprocess.run). - Sanitization: Absent. The script does not sanitize, filter, or escape the fetched web content before providing it to the agent.
Audit Metadata