CVE-2015-9252
Medium · 5.5CVSS
5.5
EPSS
1.1%
Published
Feb 13, 2018
CISA due date
—
Cloudanix analysis
A flaw in a PDF-processing tool can make programs that use it crash when they open certain files, interrupting normal work until the software is updated.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Endless recursion in QPDFTokenizer::resolveLiteral causes stack exhaustion and process termination when parsing specially crafted input.
Why it matters to the business
Applications using the affected library become unresponsive or crash when processing certain files, leading to workflow interruptions and potential data-processing failures.
How an attack unfolds
An attacker supplies a malformed input file that triggers repeated calls to resolveLiteral during tokenization; when the library processes the file the recursion exhausts available stack space and the process terminates.
How to fix it
Upgrade QPDF to version 7.0.0 or later; rebuild and redeploy any dependent applications against the fixed library.
How to confirm the fix worked
Confirm the installed QPDF version is 7.0.0 or newer; attempt parsing of known recursion-triggering test files and verify the process no longer crashes.
Typical attack path
- Attacker crafts a file that induces infinite recursion in the tokenizer
- Victim or automated process opens the file with an affected QPDF version
- Library enters endless recursion and exhausts stack memory
- Process crashes or hangs, resulting in denial of service
How to detect it
Review application and system logs for abrupt terminations or stack-overflow errors occurring during PDF parsing with QPDF; correlate crashes with file-processing timestamps.
What your security team should do
- Immediately upgrade all instances of QPDF to 7.0.0 or newer
- Scan build pipelines and containers for older QPDF versions
- Add automated version checks to CI/CD pipelines
- Monitor crash logs for stack-overflow signatures related to QPDFTokenizer
The record
An issue was discovered in QPDF before 7.0.0. Endless recursion causes stack exhaustion in QPDFTokenizer::resolveLiteral() in QPDFTokenizer.cc, related to the QPDF::resolve function in QPDF.cc.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | qpdf | 0 | 7.0.0-1 |
| Debian:12 | qpdf | 0 | 7.0.0-1 |
| Debian:13 | qpdf | 0 | 7.0.0-1 |
| Ubuntu:14.04:LTS | qpdf | 0 | 8.0.2-3~14.04.1 |
| Ubuntu:16.04:LTS | qpdf | 0 | 8.0.2-3~16.04.1 |
Related vulnerabilities
- CVE-2026-41983 Null pointer dereference vulnerability in the browser module. Impact: Successful… CWE-399
- CVE-2012-0881 Apache Xerces2 Java Parser before 2.12.0 allows remote attackers to cause a denial of… CWE-399
- CVE-2015-7944 The RESTful control interface (aka RAPI or ganeti-rapi) in Ganeti before 2.9.7, 2.10.x… CWE-399
- CVE-2015-8855 The semver package before 4.3.2 for Node.js allows attackers to cause a denial of service… CWE-399
- CVE-2015-8858 The uglify-js package before 2.6.0 for Node.js allows attackers to cause a denial of… CWE-399
- CVE-2016-9312 ntpd in NTP before 4.2.8p9, when running on Windows, allows remote attackers to cause a… CWE-399
- CVE-2016-8826 All versions of NVIDIA GPU Display Driver contain a vulnerability in the kernel mode… CWE-399
- CVE-2016-8858 The kex_input_kexinit function in kex.c in OpenSSH 6.x and 7.x through 7.3 allows remote… CWE-399