PDF.js(一种使用 HTML5 开发的广泛使用且受 Mozilla 支持的PDF查看器)和 React-PDF(一种用于在 React 应用程序中显示 PDF 的流行 npm 包)中发现了重大安全漏洞。该漏洞允许执行任意 JavaScript 代码,使数百万用户面临风险。
漏洞概述
该缺陷在 PDF.js 中指定为CVE-2024-4367 ,在 React-PDF 中指定为CVE-2024-34342,其根源在于 PDF 文件中 JavaScript 的处理不当。当 PDF.js 或 React-PDF 加载恶意PDF并启用isEvalSupported设置(默认为 true)时,可能会导致在托管域的上下文中执行不受限制的 JavaScript。
安全研究员 Thomas Rinsma 发现了该漏洞,并强调攻击者有可能利用此漏洞执行窃取 cookie、会话令牌等操作,甚至代表用户执行操作。
受影响和修补版本:
PDF.js:4.1.392 及以下版本受到影响。该问题已在版本4.2.67中修复,该版本删除了eval的使用,这是一个可以运行表示为字符串的代码的 JavaScript 函数(补丁#18015)。
React-PDF:此缺陷影响 7.7.2 及之前的版本以及 8.0.0 到 8.0.1 的版本。修补版本为7.7.3和8.0.2。
解决方法和缓解措施
通过将isEvalSupported设置为 false可以缓解这两个漏洞。对于 PDF.js,此设置是全局配置的,而在 React-PDF 中,必须在Document组件的options属性中指定。通过禁用eval,用户可以保护自己免受通过 PDF 文件执行恶意脚本的影响。
参考:
-
https://github.com/advisories/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://bugzilla.mozilla.org/show_bug.cgi?id=1893645
原文始发于微信公众号(Ots安全):PDF.js 和 React-PDF JavaScript 缺陷威胁数百万用户
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论