缓解JEE上AEM Forms的Spring Framework漏洞

本文档提供了有关解决影响JEE上AEM Forms的两个关键Spring Framework漏洞的指南:

受影响的版本

  • JEE上的Adobe Experience Manager 6.5 Forms
  • 将AEM 6.5 Forms GA版本更改为6.5.22.0

解决方法

特定于版本的解决方案

AEM Forms 版本
必需操作
6.5.22.0
1. 下载适用于您环境的修补程序
2. 要安装此修补程序,请按照说明在JEE上的AEM表单上安装Service Pack。
6.5.17.0 - 6.5.21.0
应用手动缓解步骤
6.5 - 6.5.16.0
1. 安装最新的Service Pack
2。 根据您的更新版本实施适当的解决方案

注意: AEM Forms正式仅支持最新的六个服务包。 旧版本的用户应首先升级到最新的Service Pack,然后安装所需的修补程序。

部署注意事项

对于群集环境

使用群集部署时:

  • 在群集中的​ 所有节点 ​上应用JAR文件替换(步骤#4)
  • 通过在所有服务器中使用相同的JAR版本来维护一致性
  • 在启动任何服务重新启动之前,完成所有节点的更新
  • 实施协调的重启策略以最大限度地减少系统停机时间

对于单节点环境

使用独立部署时:

  • 由于没有要管理的定位器服务器,因此请遵循简化的流程
  • 省略与定位器服务器配置或启动相关的任何步骤
  • 按照说明完成所有其他步骤,特别是JAR替换和清单更新
  • 实施所有更改后重新启动应用程序服务器

手动缓解步骤

  1. 停止应用程序服务器。

  2. 停止和定位服务器。

  3. 从核心EAR中删除Spring JAR:

    1. 导航到 [Adobe_Experience_Manager_Forms installation directory]/deploy
    2. 使用存档管理器工具打开adobe-core-<appserver>.ear文件。 其中<appserver>可以是JBoss、WebLogic或WebSphere,具体取决于您的环境:
    • 对于JBoss: ​导航到ear/lib文件夹并删除以下JAR文件:
  • spring-core-<version>.jar

  • spring-web-<version>.jar

    • 对于WebLogic或WebSphere: ​从EAR的根目录中删除以下JAR文件:
  • spring-core-<version>.jar

  • spring-web-<version>.jar

    • 对于所有应用程序服务器: ​在adobe-core-<appserver>.ear的根级别,打开adobe-dscf.jar文件并编辑META-INF/MANIFEST.MF文件以删除对以下JAR文件的任何引用:
  • spring-core-<version>.jar

  • spring-web-<version>.jar

  1. 替换Geode分发中的JAR文件:

    1. 导航到<Adobe_Experience_Manager_Forms>/lib/caching/lib
    2. 将现有JAR文件替换为更新版本:
    • spring-context-<version>.jarspring-context-6.1.14.jar
    • spring-beans-<version>.jarspring-beans-6.1.14.jar
    • spring-core-<version>.jarspring-core-6.1.14.jar
    • spring-jcl-<version>.jarspring-jcl-6.1.14.jar
    • spring-web-<version>.jarspring-web-6.1.14.jar

    要获取较新的JAR文件,请从Adobe软件分发下载spring-6.1.14-jars.zip文件,并解压缩ZIP文件以访问更新的Spring framework JAR文件。

    1. 更新以下JAR文件中的MANIFEST.MF文件:
    • geode-server-all-<version>.jar
    • gfsh-dependencies.jar

    对于每个JAR:

    • 使用归档文件管理器工具打开JAR

    • 找到并提取META-INF/MANIFEST.MF文件

    • 在文本编辑器中编辑MANIFEST.MF文件

    • 找到“Class-Path”部分,并更新所有Spring框架引用:

      • spring-core-<version>.jarspring-core-6.1.14.jar
      • spring-web-<version>.jarspring-web-6.1.14.jar
      • spring-context-<version>.jarspring-context-6.1.14.jar
      • spring-beans-<version>.jarspring-beans-6.1.14.jar
      • spring-jcl-<version>.jarspring-jcl-6.1.14.jar
    • 保存修改的MANIFEST.MF文件

    • 将JAR中的原始MANIFEST.MF替换为更新版本

    • 保存JAR文件

    1. 需要注意的常见问题:

      • 确保清单中没有重复条目
      • 维护正确的行结尾
      • 验证指定位置中存在所有引用的JAR
    2. 验证步骤:

      • 检查清单是否已正确更新
      • 验证是否正确引用了所有弹簧依赖项
      • 确保没有保留旧版本引用
      • 测试应用程序以确认没有类加载问题
  2. 运行Configuration Manager。

  3. 重新启动服务器:

    • 使用JDK 17启动定位器服务器
    • 使用以前使用的相同JDK版本(JDK 8或JDK 11)启动应用程序服务器。
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2