Back to skill

Security audit

paper-review

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent paper-review helper with disclosed dependency and API use, and I found no hidden, destructive, or deceptive behavior in the artifacts.

Install and run this in an isolated Python environment, prefer pinned reviewed package versions, and provide only the paper files and API credentials needed for the review. Be aware that selected model providers and reference-checking services may receive submitted content or metadata.

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 (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:22
Finding
Unpinned Third-Party Dependencies## Vulnerability Details **File Location**: `SKILL.md`, lines 22–28 **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ### Vulnerable Code Snippet ```bash # Install OpenJudge pip install py-openjudge # Extra dependency for paper_review pip install litellm pip install pypdfium2 # only if using vision mode (use_vision_for_pdf=True) ``` ### Technical Analysis The skill directs users to install and execute three third-party Python packages without version constraints, cryptographic hashes, or a reviewed lockfile. Consequently, package resolution depends on the mutable state of the configured Python package index at installation time. The audited project contains only documentation and does not include the dependencies' source code. Their installation-time and runtime behavior therefore cannot be verified from this artifact. A compromised maintainer account, malicious package release, or package-index compromise could cause users to retrieve and execute attacker-controlled code. This is a supply-chain exposure rather than evidence that the currently published packages are malicious. ### Attack Path 1. An attacker compromises the publication channel or maintainer account of one of the named packages and publishes a malicious release. 2. A user follows the skill's prerequisite instructions and runs the unpinned `pip install` command. 3. `pip` resolves the package to the attacker-controlled release because no approved version or hash is specified. 4. Malicious package logic executes during installation or when the paper-review pipeline imports and uses the dependency. 5. The code operates with the privileges of the invoking user and may access data and credentials available to that process. ### Impact Assessment Successful exploitation could provide arbitrary code execution with the invoking user's privileges. Potentially exposed assets include model-provider API keys, submitted academic papers, local files readable by t ...[truncated 205 chars]
Remediation
## Remediation Suggestions 1. Pin every dependency to a specifically reviewed version rather than allowing unconstrained resolution. 2. Generate a requirements or lock file containing cryptographic hashes and install with `pip --require-hashes`. 3. Verify package ownership, provenance, release signatures where available, and the source repository corresponding to each pinned artifact. 4. Use a controlled internal package mirror containing only approved artifacts. 5. Regularly scan pinned packages and transitive dependencies for known vulnerabilities, updating them through a reviewed process. 6. Perform installation and execution in an isolated, least-privilege environment with restricted filesystem and network access. 7. Provide model API credentials only at runtime, scope them narrowly, and avoid exposing unrelated credentials to the review process.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
| `--output` | auto | Output `.md` report path |
| `--bib` | — | `.bib` file for reference verification alongside PDF review |
| `--email` | — | CrossRef mailto for better rate limits |
| `--no_safety` | `False` | Skip safety checks |
| `--no_correctness` | `False` | Skip correctness check |
| `--no_criticality` | `False` | Skip criticality verification |
| `--no_bib` | `False` | Skip BibTeX verification |
Confidence
80% confidence
Finding
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
| `--output` | auto | Output `.md` report path |
| `--bib` | — | `.bib` file for reference verification alongside PDF review |
| `--email` | — | CrossRef mailto for better rate limits |
| `--no_safety` | `False` | Skip safety checks |
| `--no_correctness` | `False` | Skip correctness check |
| `--no_criticality` | `False` | Skip criticality verification |
| `--no_bib` | `False` | Skip BibTeX verification |
Confidence
80% confidence
Finding
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Static analysis

No suspicious patterns detected.