pypdftk: OS command injection via PDF and output paths
Summary
The Python library pypdftk through version 0.5 builds shell commands from caller-supplied file paths in fill_form(), dump_data_fields() and pdftk_cmd_util(). Commands are run with subprocess.Popen and shell=True. If an application passes user-influenced pdf_path or out_file values, an attacker can inject shell metacharacters and execute operating system commands with the privileges of the Python process.
Affected
- pypdftk versions 0 through 0.5 (revolunet/pypdftk)
- Vulnerable functions: fill_form(), dump_data_fields(), pdftk_cmd_util()
- Exploitation requires that pdf_path or out_file is influenced by an attacker
Fixed in
- Unknown. No fixed release has been identified.
- The commit cited by the CVE is not a fix.
Workaround
- No official workaround is published.
- Do not pass untrusted file names or paths to pypdftk; restrict inputs to fixed directories and fixed file names.
- Run the Python process with low privileges or in a container to limit the impact of command execution.
- Where feasible, call the pdftk binary directly with arguments passed as a list, without a shell.
Exploitation
- CISA SSVC: exploitation status 'poc', automatable yes, technical impact total.
- EPSS score 0.02348 at the time of the snapshot.
- Not listed as known exploited.
- No public proof of concept found in the research; this is not confirmed absent.
- No known exploitation in the wild.
Our recommendation
- Inventory all systems that use pypdftk, including scripts, containers, lockfiles and manifests.
- Prioritise high if pypdftk processes uploads or other user-influenced file names or paths; low to medium for internal-only use with fixed inputs.
- Remove or restrict user-influenced inputs to pypdftk functions.
- Run affected workloads with least privilege.
- Monitor for a fixed release or replace pypdftk with a direct, shell-free pdftk call.
- Check the upstream repository regularly for updates.
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- pypdftk GitHub repository github.com
- pypdftk.py at cited commit github.com
- pypdftk issue 56 github.com
- pypdftk pull request 57 github.com
- VulnCheck advisory www.vulncheck.com
- OSV entry CVE-2026-110636 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 02:07.
Original description (NVD)
pypdftk through 0.5 contains an OS command injection vulnerability in fill_form(), dump_data_fields(), and pdftk_cmd_util() that builds shell commands from caller-supplied paths. Attackers controlling pdf_path or out_file can inject shell metacharacters interpreted by subprocess.Popen with shell=True to execute OS commands as the Python process.
NVD references (6)
- https://github.com/revolunet/pypdftk
- https://github.com/revolunet/pypdftk/blob/1d3b40c3b42fb3cc6b0192d34aba2c21a1efd369/pypdftk.py#L87-L123
- https://github.com/revolunet/pypdftk/issues/56
- https://github.com/revolunet/pypdftk/pull/57
- https://www.vulncheck.com/advisories/pypdftk-through-0.5-os-command-injection-via-pdf-and-output-paths
- https://github.com/revolunet/pypdftk/issues/56
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
