Back to skill

Security audit

easypaper

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent EasyPaper setup guide, but it relies on mutable/unverified installs and an HTTP fallback that may expose draft paper data, so it should be reviewed before use.

Before installing, pin and verify the EasyPaper package, prefer trusted package managers or HTTPS sources for Poppler, avoid the plaintext Windows Poppler link, and configure generation to use a local or explicitly trusted HTTPS Typesetter endpoint. Do not process confidential or unpublished drafts until you understand exactly what metadata and document content the SDK may send off-host.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:28
Finding

Unpinned EasyPaper Package Installation Creates Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 28–45
Vulnerability Type: Unpinned third-party dependency
Risk Level: Medium

Vulnerable Code

bash
**Using venv**:
```bash
python -m venv easypaper-env
source easypaper-env/bin/activate  # On Windows: easypaper-env\Scripts\activate
pip install easypaper

Using conda:

bash
conda create -n easypaper python=3.11
conda activate easypaper
pip install easypaper

Direct install (not recommended):

bash
pip install easypaper
text

### Technical Analysis

The installation instructions retrieve the latest package matching the `easypaper` name from the configured Python package index without specifying a reviewed version, lock file, package hash, or signature. Consequently, the code installed by users can change after this skill has been audited.

A Python package can execute code during installation, import, or normal SDK use. An isolated virtual environment reduces dependency conflicts but does not sandbox the package from the invoking user's files, environment variables, network access, or operating-system permissions.

### Attack Path

1. An attacker compromises the `easypaper` package, one of its transitive dependencies, its publisher account, or the package-index delivery process.
2. The attacker publishes a malicious release that satisfies the unrestricted package request.
3. A user follows the skill instructions and runs `pip install easypaper`.
4. The package manager installs the malicious release or compromised transitive dependency.
5. Malicious code executes during installation, import, or paper generation with the privileges of the invoking user.

### Impact Assessment

Successful exploitation could provide arbitrary code execution under the installing user's account. The accessible scope may include project files, generated papers, metadata, environment variables, user-readable credentials, and
...[truncated 197 chars]
Remediation
View remediation

Remediation Suggestions

  • Pin EasyPaper to a specifically reviewed release rather than installing an unrestricted latest version.
  • Maintain a dependency lock file that also pins all transitive dependencies.
  • Record and enforce cryptographic package hashes, for example with pip install --require-hashes -r requirements.txt.
  • Verify the package publisher and link directly to the expected package and source repositories.
  • Review new releases before updating the pinned version and hashes.
  • Continue using a virtual environment, but do not describe it as a security sandbox.
  • Perform installation and generation as an unprivileged user in a constrained environment when processing untrusted inputs.

T08 · Insecure Dependencies

Error
Location
SKILL.md:91
Finding

Poppler Binary Is Recommended Through an Unencrypted HTTP Download

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 91
Vulnerability Type: Insecure third-party binary distribution
Risk Level: High

Vulnerable Code

markdown
- Download from [Poppler for Windows](http://blog.alivate.com.au/poppler-windows/)

Technical Analysis

The skill recommends downloading a Windows Poppler distribution over plaintext HTTP. HTTP does not authenticate the server or protect response integrity. A network-positioned attacker can therefore intercept the request and substitute the archive or redirect the user to attacker-controlled content.

The instructions do not provide an expected cryptographic checksum, digital signature, trusted publisher identity, or verification procedure. Users consequently have no documented mechanism to detect a modified binary before adding it to PATH and executing it.

Attack Path

  1. A Windows user follows the Poppler installation instructions and opens the HTTP link.
  2. An attacker controlling or observing a relevant network path intercepts the unencrypted request. Alternatively, the linked distribution host is compromised.
  3. The attacker replaces the expected archive or download response with a malicious package.
  4. The user extracts the package and adds its bin directory to PATH as instructed.
  5. The malicious executable runs when the user directly invokes Poppler or when EasyPaper performs PDF-to-image conversion.

Impact Assessment

Successful exploitation could execute arbitrary native code with the privileges of the affected user. The malicious binary could access user-readable documents, paper metadata, environment variables, credentials, and network resources. Adding the directory to PATH may also expose other applications or future sessions to the substituted executable. Administrator-level impact would require the user to install or execute the binary with elevated privileges; such elevation is not explicitly required by ...[truncated 25 chars]

Remediation
View remediation

Remediation Suggestions

  • Remove the plaintext HTTP download source.
  • Refer users to an official or otherwise trusted distribution channel that enforces HTTPS.
  • Prefer a signed package distributed through a reputable package manager with integrity metadata.
  • Publish an expected SHA-256 or stronger checksum and require users to verify it before extraction or execution.
  • Where available, require verification of a platform-native code signature or upstream release signature.
  • Pin the recommended Poppler release so that the documented checksum and review remain reproducible.
  • Advise users not to execute downloaded binaries with administrator privileges unless strictly necessary.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (12)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 57)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 58)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 63)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 64)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 69)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 86)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 91)May include surrounding context.

Or minimal installation

brew install basictex sudo tlmgr update --self sudo tlmgr install collection-basic collection-latex collection-bibtexextra

text

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill explicitly documents a fallback to an HTTP Typesetter endpoint via AGENTSYS_SELF_URL, which can cause paper metadata and potentially full document content to be transmitted off-host without an explicit warning or consent step. Because this skill handles academic drafts, references, and possibly unpublished research, silent network transmission creates confidentiality and data-governance risk.

Content

No source excerpt is available for this finding.

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 161)May include surrounding context.

md
### Skills (Domain Guidance)

- [`plugins/easypaper/skills/setup-environment/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/setup-environment/SKILL.md) - Automatic environment setup (Python, LaTeX)
- [`plugins/easypaper/skills/paper-from-metadata/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/paper-from-metadata/SKILL.md) - Full paper generation workflow
- [`plugins/easypaper/skills/venue-selection/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/venue-selection/SKILL.md) - Venue-specific formatting (NeurIPS, ICML, ICLR, ACL, AAAI, COLM, Nature)
- [`plugins/easypaper/skills/academic-writing-rules/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/academic-writing-rules/SKILL.md) - Academic writing and LaTeX conventions

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 162)May include surrounding context.

md
### Skills (Domain Guidance)

- [`plugins/easypaper/skills/setup-environment/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/setup-environment/SKILL.md) - Automatic environment setup (Python, LaTeX)
- [`plugins/easypaper/skills/paper-from-metadata/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/paper-from-metadata/SKILL.md) - Full paper generation workflow
- [`plugins/easypaper/skills/venue-selection/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/venue-selection/SKILL.md) - Venue-specific formatting (NeurIPS, ICML, ICLR, ACL, AAAI, COLM, Nature)
- [`plugins/easypaper/skills/academic-writing-rules/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/academic-writing-rules/SKILL.md) - Academic writing and LaTeX conventions

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 163)May include surrounding context.

md
- [`plugins/easypaper/skills/setup-environment/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/setup-environment/SKILL.md) - Automatic environment setup (Python, LaTeX)
- [`plugins/easypaper/skills/paper-from-metadata/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/paper-from-metadata/SKILL.md) - Full paper generation workflow
- [`plugins/easypaper/skills/venue-selection/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/venue-selection/SKILL.md) - Venue-specific formatting (NeurIPS, ICML, ICLR, ACL, AAAI, COLM, Nature)
- [`plugins/easypaper/skills/academic-writing-rules/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/academic-writing-rules/SKILL.md) - Academic writing and LaTeX conventions

### Configuration and Examples

Skill Enumeration

Medium
Category
Agent Snooping
Confidence
80% confidence
Finding

Skill enumerates or reads other installed skills. Access to other skills' SKILL.md files or the skills directory reveals prompt instructions, capabilities, and secrets that should be invisible to peer skills.

Content

Scanner excerpt · SKILL.md (reported line 164)May include surrounding context.

md
- [`plugins/easypaper/skills/setup-environment/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/setup-environment/SKILL.md) - Automatic environment setup (Python, LaTeX)
- [`plugins/easypaper/skills/paper-from-metadata/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/paper-from-metadata/SKILL.md) - Full paper generation workflow
- [`plugins/easypaper/skills/venue-selection/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/venue-selection/SKILL.md) - Venue-specific formatting (NeurIPS, ICML, ICLR, ACL, AAAI, COLM, Nature)
- [`plugins/easypaper/skills/academic-writing-rules/SKILL.md`](https://github.com/PinkGranite/EasyPaper/blob/master/plugins/easypaper/skills/academic-writing-rules/SKILL.md) - Academic writing and LaTeX conventions

### Configuration and Examples

Static analysis

No suspicious patterns detected.