A new critical vulnerability has been discovered in PDF.js, which could allow a threat actor to execute arbitrary code when opening a malicious PDF. PDF.js allows browsers to render PDF files without any plugins or external software.
This vulnerability affects multiple browsers and applications that use React-PDF.
An interesting fact is that Mozilla PDF.js is the original open-source library that focuses on rendering PDF documents within a browser, and the React-PDF PDF.js is built upon Mozilla PDF.js and used for integrating PDF.js into React applications.
With millions of users using PDF files, the threat landscape for this vulnerability could affect millions of PDF users as well as React applications that use React PDF.
Free Webinar : Live API Attack Simulation
94% of organizations experience security problems in production APIs, and one in five suffers a data breach. As a result, cyber-attacks on APIs increased from 35% in 2022 to 46% in 2023, and this trend continues to rise:
Key Takeaways:
- An exploit of OWASP API Top 10 vulnerability
- A brute force ATO (Account Takeover) attack on API
- A DDoS attack on an API
- Positive security model automation to prevent API attacks
Start protecting your APIs from hackers
As a matter of this, PDF.js is being used by many browsers like Mozilla Firefox, Safari, Google Chrome, and Edge, making its threat landscape larger than ever.
However, this vulnerability has been patched by Wojciech Maj, the React-pdf project’s maintainer.
PDF.js is built into Mozilla Firefox as a default PDF viewer. There were two CVEs associated with this vulnerability, CVE-2024-34342 and CVE-2024-4367.
Technical Analysis
CVE-2024-34342 : React-pdf’s PDF.js Vulnerable To Arbitrary JavaScript Execution
This vulnerability is related to react-pdf that can be exploited by a threat actor using a malicious PDF file.
However, certain prerequisites for exploiting it completely exist, including using PDF.js to load the malicious PDF and configuring PDF.js with isEvalSupported set to `true`.
If these two conditions exist, then the threat actor will be able to execute JavaScript in the context of the hosting domain.
The severity for this vulnerability has been given as 7.1 (High). React-pdf has patched this vulnerability by forcing `isEvalSupported` to `false` which removes the attack vector.
CVE-2024-4367: Mozilla PDF.js Could Allow For Arbitrary Code Execution
This vulnerability exists in the Mozilla PDF.js library which could allow a threat actor to execute arbitrary code under the context of the logged on user.
Moreover, based on the user’s privilege, it is possible for a threat actor to exploit this vulnerability and “install programs; view, change, or delete data; or create new accounts with full user rights.”
The vulnerability exists due to the same reason as the react-pdf PDF.js that has the isEvalSupported set to true as the default value.
The severity for this vulnerability is yet to be categorized.
Nevertheless, it is recommended for users to upgrade their products to the latest versions in order to prevent the exploitation of these vulnerabilities by threat actors.
Is Your Network Under Attack? - Read CISO’s Guide to Avoiding the Next Breach - Download Free Guide