Back to skill

Security audit

pdf-to-latex-mineru

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward PDF-to-LaTeX helper for MinerU, with ordinary external-service and dependency-install risks users should understand before use.

Install only if you trust MinerU/OpenDataLab and the mineru-open-api package source. Avoid submitting confidential PDFs unless your organization allows that service, keep MINERU_TOKEN scoped and protected, and prefer an isolated environment or pinned reviewed CLI version when possible.

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:31
Finding
Unpinned Third-Party CLI Installation Creates Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, line 31 and lines 41–42 **Vulnerability Type**: Unpinned and mutable third-party dependencies **Risk Level**: Medium The Skill declares and recommends installation of `mineru-open-api` without a fixed, reviewed version. The Go installation explicitly selects `@latest`, and the npm command installs an unspecified version globally. ```yaml metadata: {"openclaw":{"emoji":"📄","requires":{"bins":["mineru-open-api"],"env":["MINERU_TOKEN"]},"primaryEnv":"MINERU_TOKEN","install":[{"id":"npm","kind":"node","package":"mineru-open-api","bins":["mineru-open-api"],"label":"Install via npm"},{"id":"go","kind":"go","package":"github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api","bins":["mineru-open-api"],"label":"Install via go install","os":["darwin","linux"]}]}} ``` ```bash npm install -g mineru-open-api go install github.com/opendatalab/MinerU-Ecosystem/cli/mineru-open-api@latest ``` ### Technical Analysis Package references without exact versions are mutable. Each installation can resolve to a different release from the npm registry or the upstream Go repository. The Go command explicitly requests the latest available revision, while npm resolves the current registry version because no version is specified. If the package publisher account, source repository, release process, or distribution registry is compromised, a malicious release could be delivered after the Skill has already been reviewed. Package installation or subsequent CLI execution could then run attacker-controlled code. The global npm installation increases exposure by placing the executable in a shared command path rather than isolating it to a project-specific environment. No evidence establishes that the currently referenced package is malicious. The confirmed issue is the unsafe, non-reproducible dependency installation mechanism. ### Attack Path 1. An attacker compromises the dependency publisher, ...[truncated 1155 chars]
Remediation
## Remediation Suggestions 1. Pin both installation methods to exact, reviewed versions instead of relying on the current registry version or `@latest`. 2. Record and verify cryptographic checksums, signed release artifacts, package provenance, or registry integrity metadata before installation. 3. Prefer project-local npm installation or an isolated container/environment over global installation. 4. Review new releases before updating pinned versions, including dependency changes and installation lifecycle scripts. 5. Execute the converter with least privilege and expose only the input and output paths required for conversion. 6. Avoid installing dependencies from an elevated shell unless strictly necessary. 7. Document the trusted publisher and canonical release source so similarly named or substituted packages are not accepted.
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
97% confidence
Finding
The skill explicitly requires a MINERU_TOKEN and supports processing local PDFs and remote URLs, but it does not clearly warn users that document contents and the authentication token may be transmitted to an external MinerU service. This creates a real confidentiality and trust-boundary issue, especially for unpublished papers, proprietary documents, or sensitive research materials.

Natural-Language Policy Violations

Low
Confidence
85% confidence
Finding
The line states the default language hint is `ch` and instructs users to switch to `en` for English, which imposes a specific locale default in natural-language documentation. The skill does not explain or justify this locale default or offer a neutral, user-choice-first presentation.

Static analysis

No suspicious patterns detected.