T03 · Remote Payload Retrieval and Execution
- Location
SKILL.md:25- Finding
Unpinned Remote Repository Retrieval and Execution
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This poster-generation skill is purpose-related but asks the agent to automatically download and run mutable external code while storing API credentials in a plaintext file.
Install only if you are comfortable letting the skill download and run code from the specified GitHub repository, install packages into a Conda environment, and send paper content to the configured model provider. Use a disposable workspace or sandbox, inspect and pin the repository first, avoid sensitive unpublished papers unless the provider is trusted, and prefer environment-injected or temporary credentials over a persistent .env file.
SKILL.md:25Unpinned Remote Repository Retrieval and Execution
SKILL.md:69Unsafe Plaintext API Credential File Construction
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
- [x] [2025.9.3] We now support generate per section content in **parallel** for faster generation, by simply specifying `--max_workers`.
- [x] [2025.5.27] We release the [arXiv](https://arxiv.org/abs/2505.21497), [code](https://github.com/Paper2Poster/Paper2Poster) and [`dataset`](https://huggingface.co/datasets/Paper2Poster/Paper2Poster)
<!--## 📚 Introduction-->
**PosterAgent** is a top-down, visual-in-the-loop multi-agent system from `paper.pdf` to **editable** `poster.pptx`.
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
<!--A Top-down, visual-in-the-loop, efficient multi-agent pipeline, which includes (a) Parser distills the paper into a structured asset library; the (b) Planner aligns text–visual pairs into a binary‐tree layout that preserves reading order and spatial balance; and the (c) Painter-Commentor loop refines each panel by executing rendering code and using VLM feedback to eliminate overflow and ensure alignment.-->
<!---->
<!--**Paper2Poster:** A benchmark for paper to poster generation, paired with human generated poster, with a comprehensive evaluation suite, including metrics like **Visual Quality**, **Textual Coherence**, **VLM-as-Judge** and **PaperQuiz**. Notably, PaperQuiz is a novel evaluation which assume A Good poster should convey core paper content visually.-->
Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
<!---->
<!--**Paper2Poster:** A benchmark for paper to poster generation, paired with human generated poster, with a comprehensive evaluation suite, including metrics like **Visual Quality**, **Textual Coherence**, **VLM-as-Judge** and **PaperQuiz**. Notably, PaperQuiz is a novel evaluation which assume A Good poster should convey core paper content visually.-->
## 📋 Table of Contents
The skill instructs the agent to clone a remote GitHub repository directly into the current directory and then rely on that code for execution. This introduces an untrusted code execution path and supply-chain risk that is broader than the user’s simple request to convert a PDF into a poster, especially because the repository can change over time and no pinning, integrity check, or review step is required.
The skill explicitly asks the agent to solicit an OPENAI_API_KEY from the user, which is a sensitive credential. Collecting secrets inside a general-purpose skill is dangerous because the secret may be exposed to the model, tool traces, logs, or subsequent filesystem operations.
### 第五步:配置 API 密钥
检查当前目录下是否有 .env 文件。如果没有,询问用户提供:
- `OPENAI_API_KEY`(例如 UniAPI 的 sk-xxx 或 MiniMax 的 sk-xxx)
- `OPENAI_BASE_URL`(例如 https://hk.uniapi.io/v1 或 https://api.minimaxi.com/v1)
The instruction to create a .env file for credentials turns credential collection into persistent plaintext storage. That materially increases the blast radius if the workspace is later inspected, archived, synced, or committed.
OPENAI_API_KEY(例如 UniAPI 的 sk-xxx 或 MiniMax 的 sk-xxx)OPENAI_BASE_URL(例如 https://hk.uniapi.io/v1 或 https://api.minimaxi.com/v1)创建 .env 文件并写入:
cat > .env << EOF
Including OPENAI_API_KEY directly in the here-document shows the skill is designed to write the credential value into a file verbatim. This is a concrete secret-handling vulnerability, not merely incidental mention of a credential, because it operationalizes secret persistence in a commonly exposed format.
创建 .env 文件并写入:
cat > .env << EOF
OPENAI_API_KEY=用户提供的值
OPENAI_BASE_URL=用户提供的值
WORKSPACE_DIR=${WORKSPACE_DIR:-./workspace}
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Install Libreoffice
sudo apt install libreoffice
or, if you do not have sudo access, download soffice executable directly: https://www.libreoffice.org/download/download-libreoffice/, and add the executable directory to your $PATH.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Install Libreoffice
sudo apt install libreoffice
or, if you do not have sudo access, download soffice executable directly: https://www.libreoffice.org/download/download-libreoffice/, and add the executable directory to your $PATH.
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
Install Libreoffice
sudo apt install libreoffice
or, if you do not have sudo access, download soffice executable directly: https://www.libreoffice.org/download/download-libreoffice/, and add the executable directory to your $PATH.
Docker image references without a specific tag (:latest is implicit) or digest (@sha256:...) can be silently replaced by a malicious image.
The README advertises automatic web/logo search via DuckDuckGo or Google Custom Search but does not clearly disclose that institution names, conference names, or metadata inferred from the paper may be sent to third-party services. In a tool that processes unpublished or sensitive papers, this can leak confidential affiliations, venues, or research context to external providers.
The skill description says it will fetch code from GitHub and install dependencies but does not warn that this means executing untrusted external code. That omission undermines informed consent and makes users more likely to authorize risky behavior without understanding the supply-chain implications.
The trigger phrases are broad and likely to match ordinary requests about making a poster from a paper, causing the skill to activate in situations where the user did not explicitly consent to repository cloning, package installation, or credential handling. Because activation leads to sensitive actions, over-broad triggering materially increases the chance of unsafe execution.
The skill directs the agent to create or modify a Conda environment and install Python packages, which changes the local execution environment and may introduce unsafe package execution during installation. This expands the skill’s capabilities into environment management and dependency execution without clear isolation or safety controls.
The skill instructs the agent to collect API credentials and persist them into a local .env file. Storing secrets in plaintext on disk increases the risk of credential disclosure through logs, workspace sharing, later tool access, or accidental inclusion in version control.
The skill omits a clear warning that it will create a local .env file containing the user’s API credentials. Users may reasonably expect credentials to be used transiently, so failing to disclose persistence increases the chance of unintended secret exposure.
The skill is designed to send user-provided API credentials and likely paper contents or derived prompts to third-party API endpoints such as UniAPI or MiniMax. External transmission is expected for the task, but it is still security-relevant because the skill does not clearly bound what data will be sent or require explicit informed consent before transmission.
检查当前目录下是否有 .env 文件。如果没有,询问用户提供:
- `OPENAI_API_KEY`(例如 UniAPI 的 sk-xxx 或 MiniMax 的 sk-xxx)
- `OPENAI_BASE_URL`(例如 https://hk.uniapi.io/v1 或 https://api.minimaxi.com/v1)
创建 .env 文件并写入:
The heading includes both English and Chinese, but the document does not explain language expectations or offer users a choice of output language/locale. Under the stated policy, natural-language content that implicitly imposes or mixes locales without opt-in can be a documentation-level locale policy issue.
The manifest description and all user-facing instructions are written in Chinese, and the trigger examples assume Chinese-language interaction. There is no indication that users may choose another language or that Chinese-only operation is required for a region-specific purpose.
No suspicious patterns detected.