First published: Tue May 07 2024(Updated: )
### Summary If PDF.js is used to load a malicious PDF, and PDF.js is configured with `isEvalSupported` set to `true` (which is the default value), unrestricted attacker-controlled JavaScript will be executed in the context of the hosting domain. ### Patches [This patch](https://github.com/wojtekmaj/react-pdf/commit/671e6eaa2e373e404040c13cc6b668fe39839cad) forces `isEvalSupported` to `false`, removing the attack vector. ### Workarounds Set `options.isEvalSupported` to `false`, where `options` is `Document` component prop. ### References - [GHSA-wgrm-67xf-hhpq](https://github.com/mozilla/pdf.js/security/advisories/GHSA-wgrm-67xf-hhpq) - https://github.com/mozilla/pdf.js/pull/18015 - https://github.com/mozilla/pdf.js/commit/85e64b5c16c9aaef738f421733c12911a441cec6 - https://bugzilla.mozilla.org/show_bug.cgi?id=1893645
Credit: security-advisories@github.com security-advisories@github.com
Affected Software | Affected Version | How to fix |
---|---|---|
npm/react-pdf | >=8.0.0<8.0.2 | 8.0.2 |
npm/react-pdf | <7.7.3 | 7.7.3 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
CVE-2024-34342 is classified as a critical severity vulnerability as it allows unrestricted execution of attacker-controlled JavaScript in the context of the hosting domain.
To fix CVE-2024-34342, update to react-pdf version 8.0.2 or 7.7.3, ensuring that isEvalSupported is set to false in the PDF.js configuration.
CVE-2024-34342 affects applications using PDF.js with isEvalSupported set to true while loading untrusted PDFs.
Versions of react-pdf between 8.0.0 and 8.0.2, as well as any version below 7.7.3, are vulnerable to CVE-2024-34342.
The impact of CVE-2024-34342 includes the potential execution of malicious JavaScript, leading to data theft, session hijacking, or other malicious actions within the hosting domain.