<![CDATA[T03
- Location
SKILL.md:25- Finding
<![CDATA[Mutable Remote Installer Scripts Are Executed Without Verification]]>
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly aimed at saving papers to Zotero, but it uses broad install and network behavior that deserves manual review before installation.
Review this before installing. Use a least-privilege Zotero API key, do not expose ZOTERO_CREDENTIALS in logs or shared shells, avoid the shell/PowerShell installer entries unless you trust and verify the uv installer yourself, and only run the script on trusted paper URLs because arXiv detection is loose and may upload fetched content to your Zotero library.
SKILL.md:25<![CDATA[Mutable Remote Installer Scripts Are Executed Without Verification]]>
scripts/save_paper.py:92<![CDATA[Substring-Based arXiv Validation Allows Arbitrary Resource Retrieval and Upload]]>
scripts/save_paper.py:2<![CDATA[Unpinned Runtime Dependency Permits Unreviewed Future Package Versions]]>
The declared purpose says the skill saves papers to Zotero, but the detected behavior goes further by downloading/uploading PDFs and creating note objects. This is dangerous because users may authorize a metadata save while the skill performs additional network fetches and persistent writes to their library that they did not expect.
The skill declares environment-variable and network-capable behavior but does not define an explicit tool scope such as permissions or allowed-tools. This weakens user and platform visibility into what the skill can access, increasing the chance that credentials are read and outbound requests are made without clear consent boundaries.
The skill instructs users to provide Zotero credentials via an environment variable and even specifies the credential format, but gives no warning that this secret grants write access to the user's library. Poor secret-handling guidance increases the risk of accidental exposure through logs, shell history, screenshots, or reuse in unsafe environments.
The skill says it can save metadata, PDF links, and AI-generated summaries into the user's Zotero library without clearly warning that it performs write operations on user data. Hidden or underemphasized write behavior can lead to unintended modification of a personal research library and trust violations when AI-generated content is stored automatically.
The argparse description, argument help text, and subsequent user-facing output are written entirely in Chinese, which imposes a specific language on all users. The file does not provide any language selection, opt-in mechanism, or documented reason that the skill is intended only for a Chinese-speaking or region-specific context.
The skill behavior exceeds its stated scope: instead of only saving metadata to Zotero, it also performs a network download from arXiv and uploads the resulting file as an attachment. This hidden side effect matters because users and callers may approve a metadata-save action without realizing the skill will fetch remote content, consume bandwidth/storage, and persist external files into their library.
The installation metadata uses a curl-piped-to-shell pattern to fetch and immediately execute a remote script. If the remote host, transport, or script supply chain is compromised, arbitrary code will run on the user's machine during installation.
{
"id": "uv-linux",
"kind": "shell",
"script": "curl -Ls https://astral.sh/uv/install.sh | sh",
"bins": ["uv"],
"platform": "linux",
"label": "Install uv via install script"
No suspicious patterns detected.