技术文章 - CS359009
Apache Log4J 1.x 安全漏洞(CVE-2021-4104、CVE-2019-17571、CVE-2022-23302、CVE-2022-23305 和 CVE-2022-23307)——对 Windchill PLM 和 FlexPLM 的影响
已修改: 28-Apr-2022
适用于
- FlexPLM 11.1 M010 to M020
- Windchill PDMLink 11.0 M030
- FlexPLM 11.0 M030
- Windchill PDMLink 11.1 M020
- Windchill PDMLink 11.2.1.0
- FlexPLM 11.2.1.0
- FlexPLM 12.0.0.0
说明
针对 Apache Log4j 1.x 报告了多个 CVE。由于已知不支持,因此提供了分析和论证以确认对 Windchill PLM 的已知影响。
上面“适用于”区域中指定的产品版本均包含 log4j1.2.17 版本。
已识别 CVE 的易受攻击的 Apache Log4j 版本:所有 1.2.X 版本直至 1.2.17
CVE-2021-4104
在 Log4j 1.x 中,如果在 log4j 的配置文件中启用,JMSAppender 将执行 JNDI 查找。如果配置使用 JNDI (JMSAppender),使用 Log4j 1.x 的应用程序可能会受到影响。
基本 CVSS 分数:7.5 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat 识别出 RHSB-2021-009 ( CVE-2021-4104 )
https://access.redhat.com/security/cve/CVE-2021-4104
Redhat Bugzilla文章包括更多详细信息:
在 1.x 版本的 Java 日志库 Apache Log4j 中发现了一个缺陷。如果部署的应用程序配置为使用 JMSAppender,这允许远程攻击者在服务器上执行代码。
CVE-2021-4104 仅在产品专门配置为使用 JMSAppender(不是 Windchill 的 OOTB 配置)时影响 Log4j 1.2。
CVE-2019-17571
Log4j 1.2 中包含一个 SocketServer 类,该类容易受到不受信任数据的反序列化的影响,当侦听日志数据的不受信任的网络流量时,当与反序列化小工具结合使用时,可以利用该类远程执行任意代码。
基本 CVSS 分数:9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVE-2022-23302
基础分数:8.8 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.x
当攻击者对 Log4j 配置具有写访问权或配置引用攻击者有权访问的 LDAP 服务时,Log4j 1.x 的所有版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供 TopicConnectionFactorBinderingName 配置,导致 JMSSink 执行 JNDI 请求,从而以与 CVE-2021-4104 类似的方式执行远程代码。
请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。
Redhat 文章包括详细信息:
在 1.x 版的 Java 日志库 Apache Log4j 中发现了一个缺陷。如果部署的应用程序配置为使用 JMSSink,这允许远程攻击者在服务器上执行代码。
CVE-2022-23305
基础分数:9.8 向量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.2.x
CVE 读取 Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器。消息转换器 %m 可能总是包含在内。这允许攻击者通过将精心设计的字符串输入到记录的应用程序的输入字段或标题中来操纵 SQL,从而允许执行意外的 SQL 查询。
此 CVE 仅影响使用 Log4j 1.2.x 并专门配置为使用 JDBCAppender 的应用程序,这不是 Windchill 的 OOTB 配置。
CVE-2022-23307
基础分数:9.8 向量:CVSS3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.2.x
Log4j 1.2.x 中的日志查看器 Chainsaw 存在反序列化问题,可能导致任意代码执行。该漏洞之前被命名为 CVE-2020-9493,官方发布了 Apache Chainsaw 2.1.0 版本进行修复。默认情况下,Log4j 未配置为使用 Chainsaw。
根据Redhat ,在 log4j 1.x 链锯组件中发现了一个缺陷,其中某些日志条目的内容被反序列化并可能允许代码执行。
此 CVE 仅影响使用 Chainsaw 的应用程序,它的功能是侦听使用 SocketAppender 发送的 LoggingEvent 对象,该对象既未在 OOTB Windchill 配置中启用,也未从 Windchill 代码库调用。
附加说明:
已确认 Log4j 1.x 没有遭受针对 Log4j 2.x 报告的 CVE-2021-44228。参考CS358789
对第 3 方捆绑组件的影响:
上面“适用于”区域中指定的产品版本均包含 log4j1.2.17 版本。
已识别 CVE 的易受攻击的 Apache Log4j 版本:所有 1.2.X 版本直至 1.2.17
CVE-2021-4104
在 Log4j 1.x 中,如果在 log4j 的配置文件中启用,JMSAppender 将执行 JNDI 查找。如果配置使用 JNDI (JMSAppender),使用 Log4j 1.x 的应用程序可能会受到影响。
基本 CVSS 分数:7.5 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat 识别出 RHSB-2021-009 ( CVE-2021-4104 )
https://access.redhat.com/security/cve/CVE-2021-4104
Redhat Bugzilla文章包括更多详细信息:
在 1.x 版本的 Java 日志库 Apache Log4j 中发现了一个缺陷。如果部署的应用程序配置为使用 JMSAppender,这允许远程攻击者在服务器上执行代码。
CVE-2021-4104 仅在产品专门配置为使用 JMSAppender(不是 Windchill 的 OOTB 配置)时影响 Log4j 1.2。
CVE-2019-17571
Log4j 1.2 中包含一个 SocketServer 类,该类容易受到不受信任数据的反序列化的影响,当侦听日志数据的不受信任的网络流量时,当与反序列化小工具结合使用时,可以利用该类远程执行任意代码。
基本 CVSS 分数:9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- SocketServer/SimpleSocketServer易受攻击的类的使用作为 Log4J 的 SocketAppender 的一项功能,它将 LoggingEvent 对象发送到远程日志服务器,通常是 SocketNode。 SocketNode 使用套接字 (TCP) 读取从远程客户端发送的 LoggingEvent 对象。这些日志记录事件是根据本地策略记录的,就好像它们是在本地生成的一样。 SocketAppenders 将一个没有任何布局的序列化 LoggingEvent 对象发送到服务器端。在远程主机上,通过反序列化,您将可以访问所有相同的信息,并且应该能够指定打印日志的布局。
- Windchill OOTB 中未启用通过其 SocketServer 类(存在漏洞)访问远程日志的 log4j 功能,并且 Windchill 代码库中没有此类调用。此外,没有提及启用/运行该功能的 Windchill 文档。
CVE-2022-23302
基础分数:8.8 向量:CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.x
当攻击者对 Log4j 配置具有写访问权或配置引用攻击者有权访问的 LDAP 服务时,Log4j 1.x 的所有版本中的 JMSSink 都容易受到不受信任数据的反序列化。攻击者可以提供 TopicConnectionFactorBinderingName 配置,导致 JMSSink 执行 JNDI 请求,从而以与 CVE-2021-4104 类似的方式执行远程代码。
请注意,此问题仅在专门配置为使用 JMSSink(不是默认设置)时影响 Log4j 1.x。
Redhat 文章包括详细信息:
在 1.x 版的 Java 日志库 Apache Log4j 中发现了一个缺陷。如果部署的应用程序配置为使用 JMSSink,这允许远程攻击者在服务器上执行代码。
CVE-2022-23305
基础分数:9.8 向量:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.2.x
CVE 读取 Log4j 1.2.x 中的 JDBCAppender 接受 SQL 语句作为配置参数,其中要插入的值是来自 PatternLayout 的转换器。消息转换器 %m 可能总是包含在内。这允许攻击者通过将精心设计的字符串输入到记录的应用程序的输入字段或标题中来操纵 SQL,从而允许执行意外的 SQL 查询。
此 CVE 仅影响使用 Log4j 1.2.x 并专门配置为使用 JDBCAppender 的应用程序,这不是 Windchill 的 OOTB 配置。
CVE-2022-23307
基础分数:9.8 向量:CVSS3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
易受攻击的 Apache Log4j 版本:1.2.x
Log4j 1.2.x 中的日志查看器 Chainsaw 存在反序列化问题,可能导致任意代码执行。该漏洞之前被命名为 CVE-2020-9493,官方发布了 Apache Chainsaw 2.1.0 版本进行修复。默认情况下,Log4j 未配置为使用 Chainsaw。
根据Redhat ,在 log4j 1.x 链锯组件中发现了一个缺陷,其中某些日志条目的内容被反序列化并可能允许代码执行。
此 CVE 仅影响使用 Chainsaw 的应用程序,它的功能是侦听使用 SocketAppender 发送的 LoggingEvent 对象,该对象既未在 OOTB Windchill 配置中启用,也未从 Windchill 代码库调用。
附加说明:
已确认 Log4j 1.x 没有遭受针对 Log4j 2.x 报告的 CVE-2021-44228。参考CS358789
| Windchill 发布 | Apache Log4j 版本 | 附加信息 |
| 11.0 M030 | 日志4j 1.x | 强烈建议立即采取行动(有关 PTC 建议,请参阅解决方案部分) |
| 11.1 M020 及更早版本 11.2.1 FlexPLM 11.1 M010 FlexPLM 11.1 M020 FlexPLM 11.2.1 FlexPLM 12.0.0 | 日志4j 1.x | 强烈建议立即采取行动(有关 PTC 建议,请参阅解决方案部分) |
对第 3 方捆绑组件的影响:
- 受支持的第 3 方捆绑组件也可能易受攻击
- Solr
- Cognos
- Tibco
- PTC 正在与每个特定供应商合作,以确定影响、可利用性和建议的操作。此外,内部调查正在进行中,以确定任何可能的临时措施以减轻安全风险。
- 有关每个第 3 方组件的最新更新,请参阅下表(解决部分)。
- FlexPLM – 应遵循建议的操作。当/如果它们可用时,将提供任何其他注意事项。
- 导航/ ThingWorx – CS359107
- Ping Federate - 分析中
- Wincom – 在任何扩展中都直接主动使用 log4j v1。包含该库是为了满足代码中的依赖关系。分析已确认不存在攻击面或已知漏洞。在 Windchill Extension Platform 1.11.2 中删除了 log4j 1.x 引用,但建议移至可从 windchill-extensions.ptc.com 获得的最新可用版本 1.12.2。
这是文章 359009 的 PDF 版本,可能已过期。最新版本 CS359009