Adobe Acrobat Reader is one of the world’s most popular PDF readers. Its popularity also makes it a frequent target for attackers. In September 2023, security researchers discovered a serious vulnerability, CVE-2023-44360, that affects Adobe Acrobat Reader versions 23.006.20360 (and earlier) and 20.005.30524 (and earlier). This long read dives into how this vulnerability works, why it’s dangerous, and how it could be exploited—with simple language, code snippets, and useful resources.
What is CVE-2023-44360?
CVE-2023-44360 is an out-of-bounds read vulnerability. This means the program can read memory it should not have access to. In practical terms, an attacker could trick Adobe Acrobat Reader into leaking pieces of sensitive memory just by getting a user to open a booby-trapped PDF file.
Acrobat Reader 202: 20.005.30524 and earlier
Official Security Bulletin:
https://helpx.adobe.com/security/products/acrobat/apsb23-34.html
How Does This Vulnerability Work?
When Adobe Acrobat Reader processes a PDF, it reads data structures according to what’s specified in the PDF’s content. If a PDF contains a specially-crafted object, Acrobat Reader can be tricked into reading outside the bounds of this object into neighboring memory. Since the program doesn’t check boundaries properly, secrets like addresses or cached data can leak.
Such information is very useful for advanced attacks—especially for bypassing security measures like Address Space Layout Randomization (ASLR), which usually help protect programs from being exploited.
Victim opens the PDF using a vulnerable version of Acrobat Reader.
3. Aggressor gets pieces of memory from the victim’s system, possibly revealing sensitive information.
Sensitive Data: Exposed memory might reveal passwords, cryptographic keys, or cached data.
- Bypass Defenses: Information about memory layout (used by ASLR) makes it much easier to develop reliable exploits for further attacks, possibly leading to code execution.
How is the Exploit Triggered?
The exploitation requires user interaction—the victim must open a malicious file. This file can be delivered by email, download, or any method that gets users to open PDFs.
Code Snippet Example
Below is a simplified, illustrative code snippet in C to show what sort of mistake causes an out-of-bounds read:
// Example of Out-of-Bounds Read
#include <stdio.h>
void showData(char *data, int length) {
// Suppose length is incorrectly parsed from a PDF
for (int i = ; i <= length; ++i) { // off-by-one error!
printf("%02x ", data[i]);
}
printf("\n");
}
int main() {
char buffer[8] = {xde, xad, xbe, xef, xca, xfe, xba, xbe};
showData(buffer, 8); // Should be 7! This reads one byte past the buffer
return ;
}
In real Adobe Reader code, the error is more complex, and concerns how PDF objects are parsed and memory pointers are checked.
Proof of Concept PDF Structure (Pseudo)
To exploit this, attackers often abuse PDF stream objects or wrongly-sized buffers. In a malicious PDF:
%PDF-1.5
1 obj
<<
/Length 9999
>>
stream
...malicious content...
endstream
endobj
By declaring a /Length value larger than the data, Adobe may try to read more than is actually there, exposing adjacent memory.
Create Malicious PDF:
- Manipulate stream lengths or form fields in a way that Acrobat’s parser reads past intended buffers.
Victim Opens File:
- Acrobat Reader processes file, leaks memory back to attacker (possibly as part of a visible form error, a crafted Javascript in PDF, or as an error sent to a remote site).
Adobe Security Advisory (APSB23-34):
https://helpx.adobe.com/security/products/acrobat/apsb23-34.html
NIST CVE Entry:
https://nvd.nist.gov/vuln/detail/CVE-2023-44360
Security Research (ZDI):
https://www.zerodayinitiative.com/advisories/ZDI-23-1249/
Understanding Out-of-Bounds Reads:
https://owasp.org/www-community/vulnerabilities/Buffer_overflow_attack
Protection Advice
- Update NOW: Make sure you are running the latest version of Adobe Acrobat Reader. Older versions are vulnerable.
Conclusion
CVE-2023-44360 is another clear reminder that even the most trusted software can have dangerous bugs lurking beneath the surface. An out-of-bounds read might seem like a small mistake in code, but it can lead to disclosure of sensitive memory and set the stage for much more serious attacks. Always keep your PDF readers and other software up to date—and stay skeptical of unexpected attachments.
Timeline
Published on: 11/16/2023 10:15:14 UTC
Last modified on: 11/22/2023 17:03:52 UTC