Back to skill

Security audit

PDF Generation

Security checks for vulnerabilities and agentic risk

Overview

This skill gives PDF layout guidance and optional PDF tool suggestions, with no hidden execution or data access behavior found.

Reasonable to install if you want PDF layout guidance. If you follow the optional tool recommendations, install from official sources, avoid running package installers with elevated privileges, and prefer pinned or checksum-verified versions for production or CI use.

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:141
Finding
Unpinned Third-Party Package Installation Guidance## Vulnerability Details **File Location**: `SKILL.md`, lines 141–145 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown | Tool | Use Case | Install | |------|----------|---------| | **WeasyPrint** | HTML/CSS → PDF (best CSS support) | `brew install weasyprint` or `pip install weasyprint` | | **Pandoc** | Markdown → PDF via LaTeX | `brew install pandoc` | | **wkhtmltopdf** | Complex layouts | Download from wkhtmltopdf.org | | **Puppeteer** | JS-rendered content | `npm install puppeteer` | ``` ### Technical Analysis The installation instructions do not pin reviewed package versions or require integrity verification. Commands such as `pip install weasyprint` and `npm install puppeteer` resolve mutable package versions from third-party registries. Homebrew installations similarly depend on the repository state at installation time. The wkhtmltopdf guidance directs users to download software from a website without identifying an exact version, artifact URL, checksum, or cryptographic signature. Consequently, the installed component may differ from the version originally reviewed. There is no evidence in the audited file that any named package or source is currently malicious. The vulnerability is the unsafe dependency acquisition process, which leaves users exposed if a registry account, package release, repository, dependency, or downloadable artifact is compromised. ### Attack Path 1. A user follows one of the documented installation instructions. 2. The package manager resolves the current package release and its transitive dependencies, or the user selects an unverified website artifact. 3. An attacker who has compromised the relevant publisher account, registry entry, dependency, repository, or download infrastructure supplies a malicious release or binary. 4. Package installation hooks, imported library code, or the installed executable runs attacker-controlled code. 5. The malicious code operates ...[truncated 723 chars]
Remediation
## Remediation Suggestions 1. Pin each dependency to a specifically reviewed version rather than installing the mutable latest release. 2. For Python, use an exact version and hash-verified requirements, such as `package==version` with `pip --require-hashes`. 3. For Node.js, specify a reviewed Puppeteer version, commit the lockfile, and use reproducible installation commands such as `npm ci`. 4. For Homebrew, document a reviewed formula version or immutable revision where practical. 5. For downloadable binaries, provide an official HTTPS artifact URL, exact version, expected SHA-256 checksum, and signature-verification instructions. 6. Review and lock transitive dependencies where the package ecosystem supports it. 7. Perform installation in a least-privileged, isolated environment and avoid running package installation commands as root. 8. Periodically update pinned versions only after security review and integrity verification.
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

Static analysis

No suspicious patterns detected.