Back to skill

Security audit

nano-pdf

Security checks for vulnerabilities and agentic risk

Overview

This skill is a small PDF-editing helper with a normal third-party CLI dependency; the main caveat is that the dependency is not pinned.

Install this only if you are comfortable using the nano-pdf CLI from its package source. Run it with access limited to the PDFs you need to edit, review the generated PDF before sharing it, and prefer a pinned or reviewed package version where your environment supports that.

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:13
Finding
Unpinned Third-Party Executable Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 13–18 **Vulnerability Type**: Unpinned third-party package installation **Risk Level**: Medium ```json { "id": "uv", "kind": "uv", "package": "nano-pdf", "bins": ["nano-pdf"], "label": "Install nano-pdf (uv)" } ``` ### Technical Analysis The skill directs `uv` to install the `nano-pdf` package without specifying an exact version or an integrity hash. Consequently, installation may resolve to a package release that was not available or reviewed when the skill was audited. Although the metadata points to the official PyPI project page and there is no evidence that the current package is malicious, the absence of version and integrity constraints creates supply-chain exposure. A compromised maintainer account, malicious future release, or compromise of the package distribution channel could cause attacker-controlled package code to be installed. ### Attack Path 1. An attacker compromises the upstream package, its publisher account, or its distribution process. 2. The attacker publishes a malicious release under the existing `nano-pdf` package name. 3. A user installs the skill dependency through the declared `uv` installation configuration. 4. Because no exact version or integrity hash is enforced, the resolver selects the malicious release. 5. Attacker-controlled code executes during package installation or when the `nano-pdf` CLI is invoked. ### Impact Assessment Successful exploitation could execute arbitrary code with the privileges of the user or agent performing the installation or invoking the CLI. This may permit access to files available to that account—including PDFs supplied for processing—and could enable data theft, file modification, or additional payload execution. No privilege-escalation mechanism or persistence behavior is present in the audited skill itself, so the ultimate scope remains bounded by the invoking account's permissions unless the compromised dependency ...[truncated 30 chars]
Remediation
## Remediation Suggestions - Pin `nano-pdf` to an exact, reviewed version rather than allowing unconstrained resolution. - Enforce cryptographic package hashes where the installation framework supports them. - Maintain a lock file or equivalent reproducible dependency manifest that records resolved transitive dependencies. - Review release provenance, publisher identity, and package contents before updating the pinned version. - Perform dependency updates through a controlled review process with automated vulnerability and malware scanning. - Install and run the CLI with least privilege, preferably in an isolated environment with access limited to the PDF files required for the task. - Continue sanity-checking generated PDFs, but do not treat output inspection as a substitute for dependency integrity controls.
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.