Back to skill

Security audit

PDF Toolkit Pro

Security checks for vulnerabilities and agentic risk

Overview

This PDF tool appears locally focused, but it materially overstates features such as PDF-to-image conversion and batch processing.

Review this carefully before installing. It appears to be a local PDF utility rather than malware, but do not rely on the advertised image conversion or batch features without testing them first, and run it only on copies of important PDFs in a dedicated output folder.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (22)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The documentation claims PDF-to-image conversion and broad batch processing, but the static findings indicate the code does not actually emit images and may only perform page-splitting behavior while ignoring format/DPI options. Such description-behavior mismatch can mislead users into running document workflows under false assumptions, potentially causing data handling errors or loss of expected outputs.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

The documentation claims PDF-to-image conversion and broad batch processing, but the static findings indicate the code does not actually emit images and may only perform page-splitting behavior while ignoring format/DPI options. Such description-behavior mismatch can mislead users into running document workflows under false assumptions, potentially causing data handling errors or loss of expected outputs.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/split.js input.pdf -p 1-5 -o output/

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/to-image.js input.pdf -o output/images/

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The visible user-facing description and instructions are presented in Chinese, and the file does not offer an alternative language or explain that the skill is intended only for a Chinese-speaking or region-specific audience. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file describes merging, splitting, compressing, converting, and batch-processing PDFs, all of which can create or overwrite output files and affect user data. The description provides usage examples but does not include any caution about reviewing inputs/outputs, avoiding overwrites, or verifying batch operations before running them.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The user-facing description and CLI help strings are entirely in Chinese, which effectively forces a specific language for interaction. Under the policy, locale or language constraints should be optional, user-selectable, or clearly justified as region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The user-facing description and CLI help strings are written only in Chinese, including the script description and argument/option help text. This imposes a specific language on users without any opt-in or alternative locale, which matches the language/locale policy violation criteria.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The header comment states this is a 'PDF转图片脚本' that converts PDF pages into images, but the code never renders or saves PNG/JPG output. Instead, each page is copied into a new PDF and written as a .pdf file, while even the inline comments acknowledge it is only exporting PDF for later conversion.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill manifest promises PDF conversion features, and this script exposes image-format options and presents itself as a PDF-to-image tool. However, the actual behavior only splits the source PDF into per-page PDF files, which does not match the claimed conversion to PNG/JPG images.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The markdown advertises one-click processing of up to 100 PDF files and batch operations over an entire folder, but it does not include any user-facing warning about output handling, possible overwrites, or the impact of modifying many files at once. For a skill that can affect user data at scale, the description should disclose such risks.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The natural-language content presented to users is entirely in Chinese, including the description and section text, with no indication that other languages are supported or that Chinese is a required locale. Under the stated policy, forcing a specific language without user opt-in can be a language/locale policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
86% confidence
Finding

The package description is written entirely in Chinese ("PDF批量处理技能包 - 合并、分割、压缩、转换") with no indication that language selection is optional or that the skill is intended only for a Chinese-speaking or region-specific context. This can constitute a language/locale policy issue because it imposes a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
91% confidence
Finding

Using a caret range for pdf-lib allows future compatible-version updates to be installed without explicit review, which weakens supply-chain reproducibility and can introduce vulnerable or malicious transitive code unexpectedly. In a document-processing skill that handles untrusted PDFs, dependency drift increases risk because parser-related libraries are security-sensitive.

Content

Scanner excerpt · package.json (reported line 14)May include surrounding context.

json
"batch": "node scripts/batch.js"
  },
  "dependencies": {
    "pdf-lib": "^1.17.1",
    "sharp": "^0.33.0",
    "pdf2pic": "^3.1.0",
    "commander": "^11.0.0",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
96% confidence
Finding

Using an unpinned version range for sharp is a supply-chain risk because installs may resolve to different releases over time, including ones with security regressions or vulnerable native components. This is more concerning here because sharp processes document/image content and has a history of security advisories, so dependency drift can expose the skill to memory corruption, parsing, or build-time issues.

Content

Scanner excerpt · package.json (reported line 15)May include surrounding context.

json
},
  "dependencies": {
    "pdf-lib": "^1.17.1",
    "sharp": "^0.33.0",
    "pdf2pic": "^3.1.0",
    "commander": "^11.0.0",
    "glob": "^10.3.0"

Unverifiable Dependency: sharp has 4 known advisory(ies) (GHSA-54xq-cgqr-rpm3 (sharp vulnerability in libwebp dependency CVE-2023-4863); GHSA-f88m-g3jw-g9cj (sharp inherited vulnerabilities in libvips: CVE-2026-33327, CVE-2026-33328, CVE-); CVE-2022-29256 (sharp vulnerable to Command Injection in post-installation over build environmen) +1 more), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The manifest includes sharp without pinning to a known-safe version, and sharp/libvips have relevant published advisories. Because this skill performs PDF/image processing, unresolved native-library vulnerabilities could expose the host to malicious document-triggered parsing issues or unsafe build/install behavior.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
89% confidence
Finding

An unpinned pdf2pic dependency permits nondeterministic installs and reduces assurance that the deployed package matches what was tested. Because this tool converts PDFs to images, it likely relies on complex parsing/conversion chains where vulnerable dependency updates could materially affect security.

Content

Scanner excerpt · package.json (reported line 16)May include surrounding context.

json
"dependencies": {
    "pdf-lib": "^1.17.1",
    "sharp": "^0.33.0",
    "pdf2pic": "^3.1.0",
    "commander": "^11.0.0",
    "glob": "^10.3.0"
  },

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
84% confidence
Finding

Leaving commander unpinned is a supply-chain hygiene issue because dependency resolution can change across installs and environments. While commander itself is not especially sensitive in this manifest, reproducible builds are important for preventing accidental introduction of vulnerable or compromised package versions.

Content

Scanner excerpt · package.json (reported line 17)May include surrounding context.

json
"pdf-lib": "^1.17.1",
    "sharp": "^0.33.0",
    "pdf2pic": "^3.1.0",
    "commander": "^11.0.0",
    "glob": "^10.3.0"
  },
  "keywords": ["pdf", "merge", "split", "compress", "convert", "automation"],

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

An unpinned glob dependency creates a supply-chain risk by allowing different versions to be installed over time, including versions affected by known advisories. This matters more in an automation-oriented PDF toolkit because file pattern expansion may interact with user-controlled paths or CLI workflows, increasing the chance that a vulnerable release could become exploitable.

Content

Scanner excerpt · package.json (reported line 18)May include surrounding context.

json
"sharp": "^0.33.0",
    "pdf2pic": "^3.1.0",
    "commander": "^11.0.0",
    "glob": "^10.3.0"
  },
  "keywords": ["pdf", "merge", "split", "compress", "convert", "automation"],
  "author": "AI-Company",

Unverifiable Dependency: glob has 1 known advisory(ies) (CVE-2025-64756 (glob CLI: Command injection via -c/--cmd executes matches with shell:true)), but the manifest does not pin a version, so it is unknown whether the installed release is affected

Low
Category
Supply Chain
Confidence
86% confidence
Finding

The manifest uses glob without an exact version, and known advisories exist for certain glob CLI behavior involving shell execution. The risk is somewhat reduced because this package.json alone does not show direct use of the vulnerable CLI flags, but the lack of version pinning prevents verification that a safe release is installed.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script's natural-language interface strings and CLI descriptions are entirely in Chinese, including the title, argument help, and runtime messages. This imposes a specific language on users without any opt-in, fallback, or documentation that the skill is intended only for a Chinese-speaking or region-specific context.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This file contains natural-language descriptions and console messages exclusively in Chinese, including the title, CLI help text, and runtime output. Under the policy, forcing a specific language without user opt-in is a locale/language policy violation unless the constraint is explicitly justified.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.