paper-fetch
Pass
Audited by Gen Agent Trust Hub on Oct 1, 2026
Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADSDYNAMIC_EXECUTIONINDIRECT_PROMPT_INJECTION
Full Analysis
- [COMMAND_EXECUTION]: The main script
scripts/fetch.pyusessubprocess.runto execute a companion scriptscripts/cloak_pdf.py. It also runs a Python check to verify the presence of thecloakbrowserdependency. While these calls avoidshell=Trueand incorporate argument quoting viashlex, they represent a command execution surface that relies on the integrity of the environment (e.g., theCLOAKBROWSER_PYTHONvariable). - [DYNAMIC_EXECUTION]: The helper script
scripts/cloak_pdf.pyexecutes dynamic JavaScript usingpage.evaluatewithin a browser environment. This mechanism is used to perform in-page fetches to bypass anti-bot protections like Cloudflare challenges. - [INDIRECT_PROMPT_INJECTION]: The skill processes data from multiple external and potentially untrusted sources.
- Ingestion points: The skill fetches metadata such as paper titles and author names from various APIs (Crossref, Semantic Scholar, Unpaywall, arXiv) and scrapes content from Sci-Hub mirrors.
- Boundary markers: None. The ingested strings are placed directly into JSON objects returned to the agent.
- Capability inventory: The skill has the ability to write files to the local disk, perform network requests, and execute subprocesses.
- Sanitization: While the skill includes excellent SSRF validation for URLs and binary validation for PDF files, it does not sanitize text-based metadata fields that are eventually returned to the AI agent.
- [EXTERNAL_DOWNLOADS]: The skill fetches data and files from a variety of external research and preprint platforms. It mitigates SSRF risks by implementing a strict validation layer that checks all target hostnames and resolved IP addresses against private and restricted ranges before initiating any connection.
Audit Metadata