Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Hacking-pdf.js-vulnerability — CVE-2024-4367 | Kitploit
工具/GitHubGitHub/bhavyakcwestern/hacking-pdf.js-vulnerability
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHubbhavyakcwestern/hacking-pdf.js-vulnerability

Hacking-pdf.js-vulnerability

CVE-2024-4367

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
1年前尚未审核

🚨 CVE-2024-4367:PDF.js 中的任意 JavaScript 执行

本项目演示并分析了 CVE-2024-4367,这是 Mozilla 的 PDF.js 库中的一个高严重性漏洞,由于字体处理代码中类型检查不当,导致任意 JavaScript 执行。我们的研究展示了如何通过恶意构造的 PDF 在 Electron 应用等上下文中执行 JavaScript,可能升级为远程代码执行。

🔗 GitHub 仓库:Hacking-pdf.js-vulnerability


📖 项目概述

  • CVE ID:CVE-2024-4367
  • 严重性:高(CVSS v3.1 评分:8.8)
  • 受影响软件
    • PDF.js < 4.2.67
    • Mozilla Firefox < 126
    • Firefox ESR < 115.11
    • Thunderbird < 115.11
  • 利用方式:通过嵌入式字体中未经清理的 fontMatrix 实现任意 JavaScript 执行。
  • 概念验证 (PoC):PDF 文件 ex1.pdf 和 ex-gist.pdf 展示警告或远程脚本执行。

📂 仓库内容

  • src/components/ReactPdfViewer.tsx – 基于 react-pdf 5.7.2 构建的 React 查看器(捆绑了易受攻击的 pdfjs-dist 2.16.105)
  • ex1.pdf – 触发警告的恶意 PDF
  • ex-gist.pdf – 获取并执行远程 JS 的恶意 PDF
  • CVE-2024-4367_Report_Hacking_Project.pdf – 完整的技术报告和利用分析

⚠️ 漏洞详情

PDF.js 的 fontMatrix 数组元素未经正确验证——接受直接注入到通过 new Function(...) 编译的 JavaScript 中的字符串。这使得攻击者能够构造恶意字体数据,在允许类似 eval 的操作时导致任意代码执行。

易受攻击的代码路径示例:

root@kitploit:~
fontMatrix = ["alert('XSS')", 0, 0, 1, 0, 0]; // 注入的有效载荷
// 结果编译成类似:
function drawGlyph() {
  transform("alert('XSS')", 0, 0, 1, 0, 0); // 不安全的执行
}

🛡️ CVE-2024-4367 的缓解策略

为了缓解该漏洞并保护嵌入 PDF.js(或捆绑它的库)的应用程序,请采取以下措施:

✅ 升级依赖

  • 将 PDF.js 升级到 v 4.2.67(或更高版本),该版本修复了类型检查缺陷。
  • 如果使用封装库(如 react-pdf),请确认它们提供的 pdfjs-dist ≥ 4.2.67。

✅ 禁用动态编译

  • 在 PDF.js 中将 isEvalSupported = false 设置为关闭动态 Function 编译。

✅ 强制类型检查

  • 对所有用户提供的值(例如 fontMatrix 数组)添加显式的 typeof 检查。

✅ 清理输入

  • 在期望数字的地方拒绝或清理任何非数字输入。

✅ 使用依赖监控工具

  • 将 Snyk(或类似工具)集成到 CI/CD 中,自动扫描依赖项。
  • 保持 package.json/yarn.lock 为最新,并自动应用安全补丁。

✅ 保持浏览器和运行时更新

  • 运行已修补的版本:
    • Firefox ≥ 126
    • Firefox ESR ≥ 115.11
    • Thunderbird ≥ 115.11
  • 更新 Electron 运行时,使其捆绑安全的 PDF.js 构建版本。

✅ 应用安全头部

添加严格的 Content-Security-Policy:

root@kitploit:~
Content-Security-Policy: script-src 'self'; object-src 'none';
下载工具