Ausnahme gefangen: SSL certificate problem: certificate is not yet valid ๐Ÿ“Œ ZDI-21-171: Getting Information Disclosure in Adobe Reader Through the ID Tag

๐Ÿ  Team IT Security News

TSecurity.de ist eine Online-Plattform, die sich auf die Bereitstellung von Informationen,alle 15 Minuten neuste Nachrichten, Bildungsressourcen und Dienstleistungen rund um das Thema IT-Sicherheit spezialisiert hat.
Ob es sich um aktuelle Nachrichten, Fachartikel, Blogbeitrรคge, Webinare, Tutorials, oder Tipps & Tricks handelt, TSecurity.de bietet seinen Nutzern einen umfassenden รœberblick รผber die wichtigsten Aspekte der IT-Sicherheit in einer sich stรคndig verรคndernden digitalen Welt.

16.12.2023 - TIP: Wer den Cookie Consent Banner akzeptiert, kann z.B. von Englisch nach Deutsch รผbersetzen, erst Englisch auswรคhlen dann wieder Deutsch!

Google Android Playstore Download Button fรผr Team IT Security



๐Ÿ“š ZDI-21-171: Getting Information Disclosure in Adobe Reader Through the ID Tag


๐Ÿ’ก Newskategorie: Hacking
๐Ÿ”— Quelle: thezdi.com

Sometimes the only thing between you and a successful exploit is an information leak. While I see my fair share of information disclosure bugs on the job, itโ€™s not every day that I see one that is so clean and elegant. Then again, itโ€™s not every day I get the privilege of looking at some of ย Mark Yason's stellar research. This blog covers one such information leak Mark submitted to the program and recently patched by Adobe.

Letโ€™s talk aboutย  ZDI-21-171, but first, hereโ€™s a quick video showing the bug in action.

The Vulnerability

The issue exists due to the way Adobe Reader handles the ID tag within the PDF trailer. The problem is that when processing the array values for the ID tag, the application does not anticipate anything over 0x100 bytes.ย  With this knowledge and some JavaScript in hand, an attacker can leverage this to disclose the base address of Annots.api.

What exactly are we talking about?

If you pop open a PDF document in an editor, chances are that at the bottom, youโ€™ll see a File Trailer that looks something like this:

Figure 1 - Example PDF Trailer

Figure 1 - Example PDF Trailer

According to Adobeโ€™s documentation, the trailer consists of one or more key-value pairs.

Figure 2 - Adobeโ€™s File Trailer documentation

Figure 2 - Adobeโ€™s File Trailer documentation

The key-value pair of interest is ID, which is โ€œan array of two strings constituting a file identifier for the file.โ€ (See section 9.3, โ€œFile Identifiersโ€ in the document referenced above.) Our proof of concept is shown below and contains overly long array values:

Figure 3 - Proof of Concept PDF Trailer

Figure 3 - Proof of Concept PDF Trailer

What happens when the application encounters an ID key in a file trailer? During the parsing of the ID key, Reader will call a function that will return the size of the ID array values and uses that value to populate the following structure:

Figure 4 - Trailer ID Structure

Figure 4 - Trailer ID Structure

This is best illustrated by the following pseudocode:

Figure 5 - Pseudocode to retrieve File ID

Figure 5 - Pseudocode to retrieve File ID

The f_AcroDocGetFileID method returns the actual size of the file ID in the PDF even if the passed buffer argument is NULL and the buffer size argument is smaller than the actual size of the file ID. This value is then used to set the originalIDLen and modifiedIDLen properties without any check if the value is greater than 0x100 bytes.

Following this in the debugger, we can see that the parameters on the stack align with what weโ€™re seeing in the debugger.

Figure 6 - A look at the stack and the returned value

Figure 6 - A look at the stack and the returned value

When the function returns, the structure looks like this:

Figure 7 - Returned stack structure

Figure 7 - Returned stack structure

Note the returned size in @eax. The issue here is that the return value was not checked to determine if it is greater than 0x100 before storing the value in this->originalIDLen and this->modifiedIDLen.

At this point, the structure is setup with invalid length values. This comes into play later with a call to Collab.documentToStream(), which invokes a memcpy call. This is shown below:

Figure 8 - This memcpy leads to an out-of-bounds read

Figure 8 - This memcpy leads to an out-of-bounds read

When the application tries to copy the originalID into a heap-based buffer, it uses the new 0x400 bytes size instead of the expected 0x100 bytes and allows a user to leak data from the stack. The result is a stack-based buffer out-of-bounds read can be leveraged to disclose the base address of Annots.api through the Collab.documentToStream() API call.

Figure 9 - Annots.api base address successfully leaked

Figure 9 - Annots.api base address successfully leaked

Wrapping up

Adobe Reader is a common target for attackers since the PDF format is so ubiquitous. While this blog covers an info disclosure bug, Adobe recently patched this along with other vulnerabilities that could allow remote code execution, including one bug that was being actively exploited. Getting code execution on modern applications typically requires multiple steps, and leaking memory addresses is often the first step towards a full exploit chain. Combine this bug with something that allows code execution and a sandbox escape, and you could have a full compromise. You should definitely apply the security patch to all affected systems as soon as possible.

You can find me on Twitter at @mrpowell and be sure to follow the team for the latest in exploit techniques and security patches.

...



๐Ÿ“Œ Getting Information Disclosure in Adobe Reader Through the ID Tag


๐Ÿ“ˆ 44.27 Punkte

๐Ÿ“Œ CVE-2022-35871 | Inductive Automation Ignition 8.1.15 b2022030114 authenticateAdSso missing authentication (ZDI-22-1018/ZDI-CAN-17206)


๐Ÿ“ˆ 29.94 Punkte

๐Ÿ“Œ ZDI's final top 5 bug of 2018 details an Adobe Reader bug that was 'patched' by removing the feature entirely


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1706)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1707)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser memory corruption (ZDI-23-1708)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44337 | Adobe Acrobat Reader DC Font Parser out-of-bounds (ZDI-23-1713)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44338 | Adobe Acrobat Reader DC Annotation out-of-bounds (ZDI-23-1712)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1702)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser memory corruption (ZDI-23-1704)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1700)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser heap-based overflow (ZDI-23-1701)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44365 | Adobe Acrobat Reader DC Font Parser uninitialized pointer (ZDI-23-1692)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44367 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1690)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44359 | Adobe Acrobat Reader DC Font Parser use after free (ZDI-23-1697)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44371 | Adobe Acrobat Reader DC Font Parser memory corruption (ZDI-23-1699)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44340 | Adobe Acrobat Reader DC PDF File Parser out-of-bounds (ZDI-23-1711)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ CVE-2023-44366 | Adobe Acrobat Reader DC Font Parser out-of-bounds write (ZDI-23-1689)


๐Ÿ“ˆ 26.84 Punkte

๐Ÿ“Œ Day 1 of ZDI's top 5 bugs of 2019 details a sandbox escape in Firefox through the Sync feature


๐Ÿ“ˆ 23.19 Punkte

๐Ÿ“Œ Day 2 of ZDI's top 5 bugs of 2019 is a super detailed look at an LPE through win32k.sys


๐Ÿ“ˆ 23.19 Punkte

๐Ÿ“Œ ZDI-23-1579 | Microsoft Exchange Server URI Validator DownloadDataFromUri information disclosure


๐Ÿ“ˆ 22.55 Punkte

๐Ÿ“Œ ZDI-21-502: An Information Disclosure Bug in ISC BIND server


๐Ÿ“ˆ 22.55 Punkte

๐Ÿ“Œ CVE-2022-41629 | Delta Electronics InfraSuite Device Master prior 00.00.02a APRunning information disclosure (ZDI-22-1488)


๐Ÿ“ˆ 22.55 Punkte

๐Ÿ“Œ CVE-2019-7839: Getting code execution on Adobe ColdFusion through JNBridge


๐Ÿ“ˆ 21.63 Punkte

๐Ÿ“Œ Foxit Reader prior ZDI-CAN-7347 XFA memory corruption


๐Ÿ“ˆ 21.59 Punkte

๐Ÿ“Œ Alternativer PDF-Reader: ZDI nรถtigt Foxit zum Patchen von Sicherheitslรผcken


๐Ÿ“ˆ 21.59 Punkte

๐Ÿ“Œ Alternativer PDF-Reader: ZDI nรถtigt Foxit zum Patchen von Sicherheitslรผcken


๐Ÿ“ˆ 21.59 Punkte

๐Ÿ“Œ CVE-2022-24907 | Foxit PDF Reader 11.1.0.52543 JP2 Image Parser out-of-bounds (ZDI-22-350)


๐Ÿ“ˆ 21.59 Punkte

๐Ÿ“Œ CVE-2022-43649 | Foxit PDF Reader 12.0.2.12465 Annotation use after free (ZDI-23-091)


๐Ÿ“ˆ 21.59 Punkte

๐Ÿ“Œ CVE-2022-38435 | Adobe Illustrator PCX File Parser memory corruption (ZDI-22-1447)


๐Ÿ“ˆ 20.22 Punkte

๐Ÿ“Œ CVE-2022-38436 | Adobe Illustrator out-of-bounds (ZDI-22-1448)


๐Ÿ“ˆ 20.22 Punkte

๐Ÿ“Œ How to Install Lucidor Epub Ebook Reader (Epub Reader) In Ubuntu โ€“ A Best Ebook Reader Software for Linux


๐Ÿ“ˆ 19.86 Punkte

๐Ÿ“Œ Vuln: Adobe Acrobat and Reader NT LAN Manager CVE-2018-4993 Information Disclosure Vulnerability


๐Ÿ“ˆ 19.45 Punkte

๐Ÿ“Œ Vuln: Adobe Acrobat and Reader APSB18-21 Multiple Information Disclosure Vulnerabilities


๐Ÿ“ˆ 19.45 Punkte

๐Ÿ“Œ Vuln: Adobe Acrobat and Reader APSB18-34 Multiple Information Disclosure Vulnerabilities


๐Ÿ“ˆ 19.45 Punkte











matomo