SumatraPDF
CVE-2026-107738
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious CHM file with negative string offset
-
ExploitDeliver file and lure victim to open it
-
ExecutionOpening in SumatraPDF triggers out-of-bounds read before /#STRINGS
-
ImpactDeterministic application termination (denial of service)
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK
1 technique across 1 tactic: Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires a victim to open an attacker-crafted CHM (compiled HTML Help) file in SumatraPDF 3.6.1 or earlier; specifically the CHM must contain a /#WINDOWS or /#IVB string offset large enough that narrowing the file-controlled unsigned DWORD to a signed int yields a negative value, driving ChmFile::GetCharZ() to read before the /#STRINGS buffer. Limiting factors: exploitation is local and demands user interaction (the victim must actively open the malicious file), there is no network-remote path, and the outcome is confined to a crash - no code execution, privilege gain, or data disclosure. No authentication is required (PR:N), but delivery and user action are mandatory. |
| Impact | This is a medium-severity denial-of-service issue, not a high-urgency priority. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H, score 6.8) is internally consistent with the advisory: exploitation requires a local vector plus passive user interaction (opening a malicious file), and the only impact is availability (VA:H) - confidentiality and integrity are explicitly N. The GitHub advisory and fix commit confirm the root cause is an out-of-bounds READ before the /#STRINGS buffer caused by a file-controlled unsigned offset narrowed to a signed int, and the advisory states the sole consequence is 'deterministic application termination' with 'no broader impact claimed.' No EPSS score, CISA KEV listing, or public exploit was provided in the input, so exploitation probability cannot be quantified and there is no public exploit identified at time of analysis. Note a data conflict: the input Tags label this 'Information Disclosure,' but both the CVSS vector (VC:N) and the advisory text contradict any disclosure impact - treat the info-disclosure characterization as unsupported. The practical risk is a reliable crash of the reader when a victim opens a crafted CHM file; this is nuisance/DoS-grade rather than a code-execution threat. The one aggravating factor is that no fixed version is available as of this review. |
| Exploit ScenarioDerived | An attacker crafts a malicious CHM (compiled HTML Help) file with a /#WINDOWS or /#IVB string offset that, when narrowed to a signed integer, becomes negative, and delivers it to a victim (e.g., via email or download). When the victim opens the file in SumatraPDF 3.6.1 or earlier, ChmFile::GetCharZ() reads before the /#STRINGS buffer and the application deterministically crashes. No public exploit code is identified; only the fixing commit is available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Opening a malicious CHM (compiled HTML Help) file in SumatraPDF 3.6.1 or earlier crashes the application: unsigned file-controlled string offsets from the /#WINDOWS and /#IVB sections are narrowed to signed integers in ChmFile::GetCharZ() without a lower-bound check, so a negative offset drives a read before the /#STRINGS buffer. Exploitation is local and requires the victim to open the crafted file, and the outcome is limited to a deterministic termination (denial of service) with no code execution, data disclosure, or privilege gain; no public exploit code was identified at time of analysis. Cross-referenced with the advisory and the fixing commit, this is a medium-severity availability issue rather than a high-urgency priority.
RemediationAI
Upstream fix available (commit 62254ed6d781ceb5cd16489bb423e7f591cd72c4 in src/ChmFile.cpp, referenced from GHSA-33jg-vxm6-8mxx); released patched version not independently confirmed, and no vendor-released patched build was available at the time of analysis, so users should apply a SumatraPDF build containing this change once published and track the advisory for a tagged release. Until then, the effective mitigation is to avoid opening CHM files of untrusted or unsolicited origin: rely on Mark-of-the-Web/Windows Attachment Manager to block or warn on downloaded CHM files and train users not to clear that prompt (trade-off: legitimate vendor help files distributed as CHM are also blocked or require manual unblocking via file properties, and determined users can bypass the warning). Where practical, strip or quarantine CHM attachments at the mail and web gateway and block CHM downloads by policy to reduce delivery (trade-off: documentation workflows that legitimately depend on CHM files will break). Because exploitation requires a user to open the file and the only consequence is a crash, no emergency network-side controls beyond attachment filtering and user awareness are warranted.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CHM is Microsoft's compiled HTML Help container format, and its internal index tables /#WINDOWS and /#IVB store string offsets as unsigned DWORDs that point into the /#STRINGS buffer. In SumatraPDF 3.6.1 and earlier, ChmFile::GetCharZ() takes such a file-controlled offset and narrows it to a signed int; when the stored DWORD is large enough that its int representation becomes negative, the existing upper-bound test (off >= len) does not catch it, and the subsequent read at data + off accesses memory before the /#STRINGS buffer, producing an out-of-bounds read (CWE-125) that deterministically terminates the process. The fixing commit adds an off < 0 guard to the bounds check and replaces the unbounded memchr with a bounded search over the remaining length, deriving the string length from the terminator pointer returned by memchr. Per the independent assessment the prerequisites are local user interaction - the victim must actively open an attacker-supplied CHM - with no authentication and no network-remote path (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H), so the CVSS 4.0 base score of 6.8 reflects a crash-only denial-of-service condition rather than a memory-corruption primitive that could be leveraged for code execution. Tags referencing buffer overflow or information disclosure are broader than the advisory-supported impact, which is confined to application termination.
Know when Sumatrapdf 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:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Victim must open a crafted local CHM file (AV:L, UI:R) with no authentication (PR:N); the deterministic result is only a crash, so A:H with C:N/I:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
SumatraPDF is a multi-format reader for Windows. In 3.6.1 and earlier, ChmFile::GetCharZ() narrows file-controlled unsigned string offsets from /#WINDOWS and /#IVB to signed integers without a lower-bound check. An offset that becomes negative can make the function read before the /#STRINGS buffer, causing deterministic application termination. No broader impact is claimed beyond the advisory-supported conditions. No fixed version is available as of this review.
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.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
More in Sumatrapdf
View allSumatraPDF 3.5.2 and earlier on Windows contains an untrusted search path vulnerability in the Advanced Options feature
SumatraPDF 3.5.2 and earlier on Windows allows arbitrary code execution when a user opens a PDF and selects "Show in fol
SumatraPDF versions 3.5.0 through 3.5.2 fail to validate TLS certificates during software updates and execute installers
Heap-based buffer overflow in SumatraPDF before 2.1 allows remote attackers to execute arbitrary code via a crafted PDF
Heap-based buffer overflow in SumatraPDF before 2.1 allows remote attackers to execute arbitrary code via a crafted PDF
SumatraPDF versions 3.5.2 and earlier are vulnerable to a heap buffer over-read in the MOBI file parser due to incomplet
SumatraPDF on Windows is vulnerable to a denial-of-service attack through a maliciously crafted Mobi file that triggers
A buffer overflow in SumatraPDF Reader v3.4.6 allows attackers to cause a Denial of Service (DoS) via a crafted text fil
Local code execution in SumatraPDF 3.6.1 and earlier on Windows is possible when a user opens an attacker-supplied docum
Parsing a malformed PDF in SumatraPDF 3.6.1 can crash the reader through a signed integer overflow in the PageLabels han
Command-line argument injection in SumatraPDF 3.5.2 and earlier lets an attacker-controlled SyncTeX source filename esca
Argument injection in the AI translation feature of SumatraPDF 3.6.1 and earlier allows text placed in a document select
NVD
CVE.org
EPSS
GitHub
Exploit-DB