Skip to main content

node-poppler CVE-2026-78637

| EUVDEUVD-2026-65293 MEDIUM
Improper Neutralization of Argument Delimiters in a Command ('Argument Injection') (CWE-88)
2026-08-25 VulDB GHSA-65mf-8mg6-qf2r
6.9
CVSS 4.0 · Vendor: VulDB
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply hyphen-prefixed filename or path as user input
  2. Delivery
    Application passes unsanitized file_path to node-poppler function
  3. Exploit
    parseOptions constructs CLI args without end-of-options marker
  4. Execution
    Poppler binary interprets hyphen-prefixed path as option flag
  5. Persist
    Injected option alters binary behavior
  6. Impact
    Partial confidentiality, integrity, or availability impact on vulnerable system

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Argument sanitization
Exploitation Conditions

Exploitation requires that attacker-controlled or user-supplied input reaches the file_path parameter of any affected node-poppler wrapper function without sanitization or path validation. The trigger condition is a file_path value beginning with a hyphen character (-), causing the underlying poppler CLI binary to misinterpret the path as a command-line option rather than a positional argument. Applications that construct file_path values internally from trusted sources (e.g., server-generated UUIDs, database-stored paths) are not exploitable regardless of network exposure. The CVSS vector assigns PR:N and UI:N, reflecting library-level assumptions; actual exploitation is gated by whether the consuming application exposes file path selection to external input. Non-default configuration is not required - any call to the affected functions with an attacker-influenced file_path is sufficient.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L) scores 6.9 and reflects a worst-case scenario where user-supplied input directly reaches the file_path parameter without sanitization. Real-world risk is heavily application-dependent: deployments that accept user-provided filenames or paths (e.g., file upload APIs that process PDFs) represent a genuine exploitation surface, while applications using only internally-generated paths are not exploitable. No EPSS probability data was provided, KEV status is absent, and no public POC or exploit code has been identified, collectively suggesting this is not under active or widespread exploitation at time of analysis. The limited impact metrics (C:L/I:L/A:L) indicate partial rather than full system compromise - injected options may alter poppler binary behavior but are constrained to what the targeted binary accepts. This is a moderate-priority patch with urgency highest for applications that accept user-supplied file paths.

Exploit ScenarioDerived

An attacker submitting a PDF file through an application's upload endpoint names the file -verbose or supplies a path value such as --allow-setuid that begins with a hyphen; node-poppler passes this value as a CLI argument to the underlying poppler binary (e.g., pdftotext), which parses it as an option flag rather than a filename, altering the binary's behavior in a manner controlled by the attacker. Depending on which poppler utility is invoked and which flags are accepted, this could cause unintended file reads, option-flag side effects, or partial data disclosure. No public exploit code has been identified, but the attack is conceptually straightforward given the public patch diff.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 25, 2026

Argument injection in Fdawgs node-poppler affects all ten PDF-processing wrapper functions (pdfToText, pdfToCairo, pdfToPpm, and others) in src/index.js across versions up to 9.1.2 and 10.0.1, allowing a remote attacker who can supply a hyphen-prefixed file_path value to inject arbitrary CLI options into the underlying poppler binary invocations. The CVSS 4.0 score of 6.9 reflects network-reachable exploitation with no authentication required at the library level, though real-world exploitability depends on whether the application exposes file_path selection to external input. No public exploit has been identified and no CISA KEV listing exists; a fix is available via upstream GitHub commit db6e3f79d3beb20601be7e59669c39811ae3c330.

RemediationAI

Apply the upstream patch from GitHub commit db6e3f79d3beb20601be7e59669c39811ae3c330 (https://github.com/Fdawgs/node-poppler/commit/db6e3f79d3beb20601be7e59669c39811ae3c330) or track PR #842 (https://github.com/Fdawgs/node-poppler/pull/842). A released and tagged patched npm version has not been independently confirmed from available data - monitor the npm registry for a post-10.0.1 release and upgrade as soon as one is published. As a compensating control, applications should validate file_path inputs before passing them to any node-poppler function, specifically rejecting or prepending ./ to values that begin with a hyphen; this carries no functional side effects for legitimate use cases since valid file paths rarely begin with -. Additionally, restricting which users or roles can initiate PDF processing operations limits the blast radius if a hyphen-prefixed path is submitted.

Affected VersionsENISA

node-poppler 9.1.0
node-poppler 9.1.2
node-poppler 9.1.1
node-poppler 10.0.0
node-poppler 10.0.1

Affected Packages

euvd node_poppler no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

node-poppler (CPE: cpe:2.3:a:fdawgs:node-poppler:*:*:*:*:*:*:*:*) is a Node.js wrapper library that invokes poppler-utils CLI binaries (pdftotext, pdftocairo, pdftoppm, pdfimages, pdftohtml, pdftops, pdffonts, pdfdetach, pdfunite, pdfseparate) via child process execution. The vulnerable component is the Argument Injection Handler in src/index.js. CWE-88 (Argument Injection or Modification) captures the root cause: when a file_path value begins with a hyphen, POSIX-style argument parsing in the poppler binary interprets it as an option flag rather than a positional filename argument. The patch, visible in PR #842, resolves this by appending an end-of-options marker (--) to the CLI argument array inside the parseOptions function, ensuring that all subsequent tokens - including hyphen-prefixed paths - are treated as positional arguments rather than option flags. This is a classic shell argument injection pattern that bypasses application-level intent without requiring any shell metacharacter injection.

Know when Node Poppler gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulDB) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
vuln.today AI 7.3 HIGH

Network-reachable when application exposes file_path to user input; no library-level privileges required; limited partial impact from option injection into poppler binaries.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (VulDB).

CVSS VectorVendor: VulDB

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

A vulnerability was detected in Fdawgs node-poppler up to 9.1.2/10.0.1. The impacted element is the function pdfInfo/pdfToText/pdfToCairo/pdfToPpm/pdfImages/pdfToHtml/pdfToPs/pdfFonts/pdfDetach/pdfAttach/pdfSeparate/pdfUnite of the file src/index.js of the component Argument Injection Handler. Performing a manipulation of the argument file_path results in argument injection. The attack may be initiated remotely. The patch is named db6e3f79d3beb20601be7e59669c39811ae3c330. It is recommended to apply a patch to fix this issue.

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
niche Node.js PDF-processing wrapper library
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

34
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy