Description
easy-pdf-merge 0.1.0 through 0.2.6 contains an OS command injection vulnerability that allows attackers to execute commands by injecting shell metacharacters into source paths, destination path, or maxHeap option. Attackers can supply file names or options containing double quotes, semicolons, $() or backticks, which child_process.exec() runs through a shell with the Node.js process privileges.
Published: 2026-10-12
Score: 9.2 Critical
EPSS: 1.9% Low
KEV: No
Impact: Remote Command Execution
Action: Immediate Patch
AI Analysis

Impact

The flaw lies in the merge function of easy‑pdf‑merge, which constructs shell commands by directly concatenating user‑supplied source paths, destination paths, or the maxHeap option and then passes them to child_process.exec(). Because child_process.exec() runs the command through a shell with the privileges of the running Node.js process, an attacker can inject shell metacharacters such as double quotes, semicolons, $() or backticks, thereby executing arbitrary commands. The result is a loss of confidentiality, integrity, and availability on any system where the vulnerable merge function is reachable.

Affected Systems

The affected product is the open‑source easy‑pdf‑merge library authored by karuppiah7890. Versions from 0.1.0 through 0.2.6 contain the vulnerability. Any Node.js application that depends on one of these releases and exposes the merge functionality to untrusted input—whether through a public API, command‑line interface, or internal service—is at risk.

Risk and Exploitability

The CVSS score of 9.2 indicates critical severity. An EPSS score of 1% indicates a low but non‑zero probability that attackers will target this vulnerability, and the vulnerability is not listed in the CISA KEV catalog; however, the lack of a KEV listing does not diminish the risk. Based on the description, the likely attack vector is any interface that accepts source paths, destination paths, or the maxHeap option for the merge operation and is exposed to users who can supply arbitrary input. An attacker who can reach the merge function can craft input containing shell metacharacters, trigger child_process.exec(), and run arbitrary commands with the privileges of the Node.js process. Because this requires no additional authentication or privilege escalation, the potential impact is complete compromise of the affected system.

Generated by OpenCVE AI on October 13, 2026 at 14:36 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade easy‑pdf‑merge to a version later than 0.2.6, where the merge implementation switches to child_process.execFile or eliminates the shell invocation entirely.
  • If an upgrade is not immediately possible, restrict the merge API to trusted input only—for example, validate file paths against a whitelist and reject any input that contains shell metacharacters such as “”, ‘;’, $(), or backticks.
  • Replace the library’s use of child_process.exec() with a safer alternative such as child_process.spawn or execFile, ensuring that all arguments are validated and no shell is invoked.

Generated by OpenCVE AI on October 13, 2026 at 14:36 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 13 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 13 Oct 2026 07:45:00 +0000

Type Values Removed Values Added
First Time appeared Karuppiah7890
Karuppiah7890 easy-pdf-merge
Vendors & Products Karuppiah7890
Karuppiah7890 easy-pdf-merge

Mon, 12 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Description easy-pdf-merge 0.1.0 through 0.2.6 contains an OS command injection vulnerability that allows attackers to execute commands by injecting shell metacharacters into source paths, destination path, or maxHeap option. Attackers can supply file names or options containing double quotes, semicolons, $() or backticks, which child_process.exec() runs through a shell with the Node.js process privileges.
Title easy-pdf-merge 0.1.0 through 0.2.6 OS Command Injection via merge function
Weaknesses CWE-78
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Karuppiah7890 Easy-pdf-merge
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-13T17:36:30.801Z

Reserved: 2026-10-12T19:27:41.300Z

Link: CVE-2020-37279

cve-icon Vulnrichment

Updated: 2026-10-13T17:36:05.624Z

cve-icon NVD

Status : Deferred

Published: 2026-10-12T21:17:05.570

Modified: 2026-10-16T19:18:44.867

Link: CVE-2020-37279

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-13T14:45:10Z

Weaknesses
  • CWE-78

    Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection')