CVE intelligence and bounded remediation

CVE-2016-4991 — Input passed to the Pdf() function is shell escaped and passed to child_process.exec() during PDF rendering

Critical CVSS 9.8

Input passed to the Pdf() function is shell escaped and passed to child_process.exec() during PDF rendering. However, the shell escape does not properly encode all special characters, namely, semicolon and curly braces. This can be abused to achieve command execution. This problem affects nodepdf 1.3.0.

Severity
Critical
CVSS
9.8 (3.1)
Published
2022-07-28
CISA KEV
Not currently listed
Ecosystem
software/application
Weaknesses
CWE-77

Affected products

  • nodepdf_project / nodepdf / 1.3.0

Matched remediation archetype

Command, code, expression, and template injection

This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.

Check exposure

  • Trace untrusted values to process execution, interpreters, evaluators, template engines, dynamic imports, and administrative scripting features.
  • Determine whether the affected path is reachable across each trust boundary and which service account or host privilege it inherits.
  • Review configuration for optional execution features, unsafe compatibility modes, and shell invocation.

Remediate safely

  • Replace string-built commands or evaluated code with fixed operations and structured argument APIs that do not invoke a shell.
  • Use strict allowlists for operation identifiers and reject unexpected input before it reaches any interpreter.
  • Update the affected component and add inert regression tests covering metacharacters, encoding variants, and alternate request paths.

Authoritative sources

Complete CVE record and remediation plan

The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.