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

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

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

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

工具目录

分类

查看所有分类
Loading categories
mojarra-2.2.13-patched — CVE-2020-6950 安全修复程序向 Mojarra 2.2.13 的回移植,为遗留应用程序提供带有最小化、可审查更改的已修补 jsf-impl JAR。 | Kitploit
工具/GitHubGitHub/thelonelycoder/mojarra-2.2.13-patched
漏洞分析供应链安全学习与教育精选资源
GitHubthelonelycoder/mojarra-2.2.13-patched

mojarra-2.2.13-patched

CVE-2020-6950 安全修复程序向 Mojarra 2.2.13 的回移植,为遗留应用程序提供带有最小化、可审查更改的已修补 jsf-impl JAR。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
12小时42分前尚未审核
分享

Mojarra 2.2.13 – CVE-2020-6950 向后移植

本仓库包含针对 CVE-2020-6950 修复到 Mojarra 2.2.13 的可复现向后移植。

其存在主要用于可追溯性以及维护那些出于兼容性原因无法直接升级到更新 JSF/Mojarra 版本的遗留应用程序。

致谢与上游来源

Mojarra

Mojarra 是 JavaServer Faces (JSF) 的参考实现,最初作为 GlassFish/Java EE 生态系统的一部分开发,现由 Eclipse Mojarra 项目维护。

本仓库中包含的 Mojarra 源代码并非我的作品。所有版权归原始 Mojarra 作者和贡献者所有。

当前上游项目:

  • Eclipse Mojarra:https://github.com/eclipse-ee4j/mojarra
  • Eclipse 项目页面:https://projects.eclipse.org/projects/ee4j.mojarra

作为本工作基础的未修改 Mojarra 2.2.13 构件来自 Maven Central。

CVE-2020-6950 补丁

此处使用的安全修复并非由我开发。

针对 Mojarra 2.2.13 的向后移植来自 openEuler Mojarra 软件包,其中 CVE-2020-6950.patch 被应用于 Mojarra 2.2.13。

openEuler 软件包源码:

  • https://gitee.com/src-openeuler/mojarra

原始补丁已被保留,以便安全修改的来源和确切性质保持可追溯。

感谢上游 Mojarra 开发者以及提供并发布向后移植安全补丁的 openEuler 维护者和贡献者。

本仓库存在的原因

我遇到了一个仍依赖 Mojarra 2.2.13 并受 CVE-2020-6950 影响的遗留应用程序。

升级完整的 JSF 实现并非短期内可行的方案,因为该应用程序及其周边框架是具有显著兼容性约束的遗留软件。

同时,我希望安全修改具备以下特性:

  • 基于公开可用的上游/供应商补丁,
  • 最小化,
  • 可审查,
  • 可复现,
  • 且可追溯到原始 Mojarra 2.2.13 实现。

因此,我自行重新构建了受影响的类,而不是分发未经解释的修改后二进制文件。

因此,本仓库并不代表对安全修复的独立实现。它记录并打包了一个已发布的现有修复,用于 Mojarra 2.2.13。

变更内容

openEuler CVE-2020-6950 补丁修改了三个 Mojarra 类:

root@kitploit:~
com/sun/faces/application/resource/ClasspathResourceHelper.java
com/sun/faces/application/resource/ResourceManager.java
com/sun/faces/application/resource/WebappResourceHelper.java

该补丁使用以下方法添加了资源契约名称的验证:

root@kitploit:~
ResourceManager.nameContainsForbiddenSequence(...)

在修补后的 jsf-impl-2.2.13 JAR 中仅替换了这三个类。

对解压后的原始 JAR 和修补后 JAR 进行了比较,以验证没有其他文件存在差异。

构建方法

原始 Mojarra 2.2.13 源码与已发布的 openEuler CVE 补丁一起使用。

由于重建完整的历史 Mojarra 2.2.13 构建环境及其旧版构建依赖会增加不必要的复杂性并使结果更难审计,因此仅重新编译了三个受影响的类。

它们使用 OpenJDK 8 编译,参数为:

root@kitploit:~
-source 1.5 -target 1.5

生成的类文件经验证具有:

root@kitploit:~
主版本号:49

这与原始 Mojarra 2.2.13 类的字节码版本一致。

随后将生成的三个类文件插入到原始 jsf-impl-2.2.13.jar 的未修改副本中。

验证

对生成的 JAR 进行解压并与原始版本进行比较。

仅以下文件存在差异:

root@kitploit:~
ClasspathResourceHelper.class
ResourceManager.class
WebappResourceHelper.class

此外,使用 javap 检查了生成的字节码,以验证两个资源辅助类都包含预期的调用:

root@kitploit:~
ResourceManager.nameContainsForbiddenSequence(...)

所有三个替换类也经验证保留了 Java 类文件主版本号 49。

部署构件

对于当前使用拆分 Mojarra 库的应用程序:

root@kitploit:~
jsf-api-2.2.13.jar
jsf-impl-2.2.13.jar

本项目生成的相关替换文件为:

root@kitploit:~
jsf-impl-2.2.13-patched.jar

JAR 文件名本身对 Java 类加载器并不重要。-patched 后缀被有意保留,以便管理员能够立即区分修改后的实现与原始实现。

请勿同时部署原始和修补后的 jsf-impl JAR。

安全的部署流程是:先备份现有应用程序,移除原始 jsf-impl-2.2.13.jar,部署 jsf-impl-2.2.13-patched.jar,重启应用程序/容器,并验证应用程序正常运行以及 CVE-2020-6950 所解决的安全问题。

范围与免责声明

本仓库旨在作为遗留 Mojarra 2.2.13 安装的窄范围兼容性/安全向后移植。

它不是 Mojarra 的分支,不是新的 Mojarra 版本,也与 Eclipse 基金会、Oracle、GlassFish 或 openEuler 无关联或未经其认可。

在可能的情况下,升级到当前维护的 JSF/Jakarta Faces 实现优于使用单独安全补丁维护旧版 Mojarra 版本。

本仓库仅解决上述特定 CVE。它不应被解释为使 Mojarra 2.2.13 普遍安全、最新、受维护或受支持。

用户仍需负责在部署到生产系统之前,在自己的环境中测试修补后的构件。

许可

原始 Mojarra 源代码和二进制文件仍受其各自上游许可证和版权声明的约束。

Mojarra 2.2.13 根据适用于该版本的 GPL v2 / CDDL 双许可证条款分发,包括原始源代码头文件中声明的 GPL Classpath Exception。

原始 Mojarra 许可证文件未修改地包含在:

root@kitploit:~
packager/legal/LICENSE.txt

Mojarra 源文件中的原始版权和许可证头已被保留。

openEuler 提供的补丁仍归属于其各自的作者和源项目。

本仓库不主张对原始 Mojarra 代码或 CVE 修复的任何所有权。

下载工具