Back to skill

Security audit

PDF Analysis

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward PDF-analysis helper, but users should treat analyzed PDFs as potentially shared with the MinerU service and install the CLI carefully.

Install only if you are comfortable using MinerU's CLI and service for the PDFs you choose to analyze. Prefer a pinned CLI version, avoid running global installs with elevated privileges, and do not process confidential, regulated, or internal documents unless external API processing is allowed by your policy.

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:15
Finding
Unpinned Third-Party CLI Installation Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 15–17 **Vulnerability Type**: `T08: Insecure Dependencies` **Risk Level**: Medium ### Vulnerable Code ```bash npm install -g mineru-open-api # or via Go (macOS/Linux): go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@latest ``` The metadata on line 5 also declares the npm package without an immutable version: ```yaml "package": "mineru-open-api" ``` ### Technical Analysis Both documented installation methods retrieve mutable third-party executable code. The npm command does not specify a version and installs the package globally, while the Go command explicitly selects `@latest`. The project supplies no checksum, cryptographic signature, lockfile, immutable commit reference, or other mechanism for verifying the downloaded artifact. This does not establish that the current upstream packages are malicious. However, it means the code installed by users can change after this Skill has been reviewed. If the package registry, upstream repository, maintainer account, or a transitive dependency is compromised, following these instructions could install attacker-controlled code. For npm, malicious lifecycle scripts may execute during installation. A malicious CLI can also execute when subsequently invoked. For Go, an attacker-controlled release or dependency can become part of the compiled executable and run when the resulting CLI is invoked. ### Attack Path 1. An attacker compromises the npm package, upstream Go repository, maintainer account, release process, or a transitive dependency. 2. The attacker publishes a malicious version that becomes the registry default or the version resolved by `@latest`. 3. A user or automated agent follows the installation instructions in `SKILL.md`. 4. The mutable dependency resolves to the attacker-controlled release. 5. For npm, malicious installation lifecycle behavior may run during the global installation. Otherwise, the malici ...[truncated 894 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin the npm dependency to an exact reviewed version, for example: ```bash npm install --global mineru-open-api@<reviewed-version> ``` 2. Replace the Go `@latest` reference with an exact reviewed semantic version or immutable commit: ```bash go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@<reviewed-version-or-commit> ``` 3. Apply the same version pinning to the package declaration in the Skill metadata. 4. Publish expected checksums or signature-verification instructions for approved release artifacts. 5. Prefer a project-local npm installation with a lockfile over a global installation where practical. 6. Review dependency ownership, release provenance, transitive dependencies, and npm lifecycle scripts before approving a version. 7. Run the CLI under a least-privileged account and provide it only the documents and environment variables required for the task. 8. Upgrade versions through an explicit review process rather than automatically tracking the latest release. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill encourages analysis of local PDFs and PDF URLs through `mineru-open-api` but does not clearly disclose that document contents may be transmitted to an external MinerU service. This can cause users to send sensitive internal, personal, or regulated documents off-system without informed consent, especially because the examples make remote processing appear routine.

Natural-Language Policy Violations

Low
Confidence
79% confidence
Finding
This line states a default language hint of `ch` and tells users to switch to `en` for English, which embeds a locale preference in the skill documentation. Under the policy, language constraints should either be user-selectable or clearly justified; here the documentation does not frame the choice as an opt-in or explain why that default is required.

Static analysis

No suspicious patterns detected.