Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach application using libpoppler
-
ExploitSupply AESV3/R6 PDF with password over 127 bytes
-
ExecutionOverflow K1 and E stack buffers in revision6Hash()
-
ImpactCrash process or corrupt stack memory
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Stack buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target application to open an AESV3/R6 (AES-256 revision 6) encrypted PDF using libpoppler, libpoppler-glib, or the Poppler C++ API, AND for the attacker to control the password string supplied to the decryption call, which must exceed 127 bytes to overflow the fixed-size K1 and E stack buffers in Decrypt::revision6Hash(). The principal limiting factor (reflected as AT:P in the CVSS 4.0 vector) is that the attacker must influence the password input: in interactive PDF viewers the password is normally user-chosen, so the realistic exposure is automated/server-side PDF processing services that pass externally supplied passwords to Poppler, or workflows where both the encrypted file and its password come from an untrusted source. Applications that never open encrypted/R6 PDFs or that constrain password length before passing it to Poppler are not exposed. |
| Impact | The input CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N, base 8.3 High) describes a network-reachable, low-complexity, unauthenticated flaw with a present attack requirement (AT:P) - namely that the attacker must control the password string passed to the decrypt routine. Impact is weighted toward availability (VA:H, process crash) with only Low integrity impact (VI:L, memory corruption) and no confidentiality impact (VC:N), which signals that the realistic, demonstrated outcome is denial of service rather than confirmed reliable code execution. The description notes memory can be 'corrupted,' leaving code execution theoretically possible for CWE-121 stack overflows, but neither the vendor rating (integrity only Low) nor any POC substantiates weaponized RCE. No EPSS score, no CISA KEV listing, and no POC indicator are present in the provided data; SSVC decision inputs (exploitation/automatable/technical-impact) were not supplied. Exploitation status is therefore: no public exploit identified at time of analysis. The AT:P attack requirement is the key moderating signal - exploitation depends on the attacker being able to supply the password to the vulnerable API, which is unusual for interactive viewers (where the user chooses the password) and most plausible in automated/server-side PDF pipelines. Net: a legitimately High-severity memory-safety bug in a very widely deployed library, but absent KEV/POC/EPSS and given the DoS-dominant impact and password-control prerequisite, it is a patch-promptly priority rather than an emergency drop-everything issue. |
| Exploit ScenarioDerived | An attacker targets a server-side or automated service that uses libpoppler/libpoppler-glib/C++ API to open AESV3/R6 (AES-256, revision 6) encrypted PDFs and accepts an attacker-influenced password. By submitting a password longer than 127 bytes, the attacker overflows the K1 and E stack buffers inside Decrypt::revision6Hash(), crashing the process and corrupting stack memory. No public exploit code is identified at time of analysis; the attacker must control the password value passed to the library (AT:P), so interactive viewers where the user chooses the password are far less exposed than automated decryption pipelines. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Stack-based buffer overflow in Poppler's Decrypt::revision6Hash() allows a caller-supplied password longer than 127 bytes for an AESV3/R6 (AES-256 revision 6) encrypted PDF to overwrite the K1 and E stack buffers, crashing the process and corrupting nearby memory. Poppler 0.42.0 through 26.10.0 is affected across libpoppler, libpoppler-glib and the C++ API, and the flaw is remotely reachable and unauthenticated per the assessed vector (CVSS:4.0 PR:N) but carries an explicit attack requirement - the attacker must control the password string passed to the decrypt routine - so realistic exposure is automated or server-side PDF pipelines that decrypt files with externally supplied passwords rather than interactive viewers where the user types the password. Impact is primarily availability (A:H) with a limited integrity effect (I:L); no public exploit identified at time of analysis, no CISA KEV confirmation of active exploitation, and an upstream fix is tracked via freedesktop GitLab merge request 2398 with a vendor advisory noted.
RemediationAI
Patch available per vendor advisory: the upstream fix is tracked in freedesktop GitLab merge request 2398 (https://gitlab.freedesktop.org/poppler/poppler/-/merge_requests/2398), and a tagged released patched version was not independently confirmed in the provided data, so teams should apply the maintainers' update or the corresponding fixed Poppler package from their Linux distribution as soon as it is published, and confirm the fix by re-testing an R6-encrypted PDF with a password longer than 127 bytes. Where immediate upgrade is impossible, the highest-value compensating control is to cap, reject or truncate passwords exceeding 127 bytes before they reach Poppler's decryption call - this fully removes the overflow but breaks legitimate documents that use long passphrases and must be enforced by the calling application rather than by Poppler itself. Environments that never need to decrypt untrusted R6/AESV3 files can disable or block encrypted-PDF handling in their processing pipeline, at the cost of losing a legitimate feature, and any service that accepts externally supplied PDFs and passwords should run PDF parsing in an isolated, low-privilege sandbox (container, seccomp/AppArmor profile, read-only filesystem, no outbound network) so that a crash or memory corruption cannot be leveraged further, accepting the added operational complexity and some throughput loss. There is no CISA KEV indication of active exploitation and no public exploit identified at time of analysis, so prioritise internet-facing or automated PDF-processing services where attacker-controlled passwords are in play.
Affected VersionsENISA
Affected Packages
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
Poppler is the freedesktop.org open-source PDF rendering library that powers libpoppler, libpoppler-glib, the Poppler C++ API, and a large ecosystem of viewers and command-line utilities (Evince, Okular, pdftotext, pdftoppm, and many server-side document-processing products). Decrypt::revision6Hash() implements the revision-6 / AESV3 password hash defined in ISO 32000-2 (Algorithm 2.B), an iterative construction that repeatedly feeds the user password and file salt through SHA-256, SHA-384 and SHA-512 digests interleaved with AES-128-CBC encryption to derive the 256-bit file encryption key. The routine stores intermediate values in fixed-size stack buffers - referred to in the source as K1 and E, visible at Decrypt.cc line 1767 of the poppler-26.10.0 tree - and lacks a sufficient length check before copying the password, so input longer than 127 bytes overruns adjacent stack memory, the textbook CWE-121 stack-based buffer overflow class named in the advisory. The consequence of corrupting stack data is a very high likelihood of process termination (the assessed A:H) plus a limited integrity effect (I:L), but neither code execution nor information disclosure is demonstrated by the assessed vector. The vulnerable path is only reached when an application actually parses an R6/AESV3 encrypted PDF and hands the attacker-influenced password to Poppler's decryption routine; applications that never open encrypted PDFs, or that bound password length before calling in, never trigger it.
Know when 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated (AV:N/PR:N), but AC:H reflects the requirement that the attacker control an over-length password to a decrypt call; impact is mainly crash (A:H) with partial memory corruption (I:L) and no confidentiality loss.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Poppler 0.42.0 through 26.10.0 contains a stack-based buffer overflow in Decrypt::revision6Hash() that allows attackers controlling the password to overwrite stack memory when opening AESV3/R6 encrypted PDFs. Attackers can supply a password longer than 127 bytes through applications using the libpoppler, libpoppler-glib or C++ API to overflow the K1 and E buffers, crashing the process or corrupting memory.
Executive ViewAI
A stack-based buffer overflow in Poppler - the PDF library embedded in countless document viewers, office suites and server-side document pipelines - can crash or corrupt memory in any product that decrypts AES-256 (revision 6) encrypted PDFs using a password supplied by an external caller. Poppler 0.42.0 through 26.10.0 is affected across libpoppler, libpoppler-glib and the C++ API, so exposure spans both end-user applications and the automated document-ingestion services that many business workflows depend on. Leadership should care because the realistic risk is concentrated in back-end systems that accept user-supplied passwords, where the primary outcome is service disruption and secondary memory corruption rather than data theft.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A stack-based buffer overflow occurs when a program writes more data to a buffer located on the stack than it was allocated to hold.
Format string vulnerability in the extractPages function in utils/pdfseparate.cc in poppler before 0.24.3 allows remote
An exploitable integer overflow vulnerability exists in the JPEG 2000 image parsing functionality of freedesktop.org Pop
In Poppler 0.59.0, a NULL Pointer Dereference exists in the GfxImageColorMap::getGrayLine() function in GfxState.cc via
In Poppler through 0.76.1, there is a heap-based buffer over-read in JPXStream::init in JPEG2000Stream.cc via data with
An issue was discovered in Poppler 0.74.0. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
An issue was discovered in Poppler 0.74.0. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
An issue was discovered in Poppler 0.74.0. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable, n
A heap-based buffer underwrite exists in ImageStream::getLine() located at Stream.cc in Poppler 0.74.0 that can (for exa
Stack-based buffer overflow in the extractPages function in utils/pdfseparate.cc in poppler before 0.24.2 allows remote
In Poppler 0.59.0, a floating point exception exists in the isImageInterpolationRequired() function in Splash.cc via a c
In Poppler 0.59.0, a floating point exception occurs in Splash::scaleImageYuXd() in Splash.cc, which may lead to a poten
Poppler prior to and including 22.08.0 contains an integer overflow in the JBIG2 decoder (JBIG2Stream::readTextRegionSeg
EUVD-2026-95208
GHSA-939q-g65h-55jw
NVD
CVE.org
EPSS
VulDB
Exploit-DB