关于Mozilla PDF.js代码执行漏洞(CVE-2024-4367)的安全预警

来源:网络信息中心发布时间:2024-05-28浏览次数:473

一、基本情况

PDF.js是一个由Mozilla开发的、广泛使用的开源便携式文档格式 (PDF) 查看器,可以在Web浏览器中显示PDF文档,而无需依赖任何本地插件,PDF.js被内置于Mozilla Firefox中,也可被其他Web浏览器使用。

二、漏洞描述

Mozilla PDF.js 4.2.67之前版本在font_loader.js 中存在代码注入漏洞,当PDF.js 配置isEvalSupported 选项设置为 true(默认值)时会将输入传递到 函数,威胁者可通过诱导用户打开恶意PDF文件来利用该漏洞,成功利用可能导致在登录用户或托管域的上下文中执行任意JavaScript。

该问题在React-PDF中被追踪为CVE-2024-34342,CVSS评分为7.1,影响了React-PDF 7.7.3之前和8.0.2之前版本,当React-PDF加载恶意PDF并启用isEvalSupported设置(默认为 true)时,可能会导致在登录用户或托管域的上下文中执行JavaScript。

三、影响范围

Mozilla PDF.js < 4.2.67

pdfjs-dist (npm) < 4.2.67

react-pdf (npm) < 7.7.3

8.0.0<= react-pdf (npm) <8.0.2

注:pdfjs-dist是Mozilla PDF.js 库的通用构建;React-PDF是一个React组件,它封装了PDF.js库。

四、修复建议

目前这些漏洞已经修复,受影响用户可更新到PDF.js/pdfjs-dist版本4.2.67、react-pdf 7.7.3或8.0.2。

临时措施

可通过将isEvalSupported设置为false来缓解这两个漏洞。对于 PDF.js,该设置是全局配置的;而在React-PDF中,需在Document组件的options属性中指定options.isEvalSupported为false。