技术文章 - CS359009
Apache Log4J 1.x 安全漏洞(CVE-2021-4104、CVE-2019-17571、CVE-2022-23302、CVE-2022-23305 和 CVE-2022-23307)——对 Windchill PLM 和 FLEXPLM 的影响
已修改: 08-Jun-2026
适用于
- 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
- Windchill PDMLink 12.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 查找。如果使用 Log4j 1.x 的应用程序的配置中使用了 JNDI(JMSAppender),则可能会受到影响。
基本 CVSS 分数:7.5 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
红帽公司已识别出 RHSB-2021-009 ( CVE-2021-4104 )
https://access.redhat.com/security/cve/CVE-2021-4104
Redhat Bugzilla文章包含更多详细信息:
Java 日志库 Apache Log4j 1.x 版本中发现了一个漏洞。如果部署的应用程序配置为使用 JMSAppender,则远程攻击者可以利用此漏洞在服务器上执行代码。
CVE-2021-4104 仅影响 Log4j 1.2,当产品专门配置为使用 JMSAppender 时,而这不是 Windchill 的开箱即用配置。
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 1.x 中的 JMSSink 都存在安全漏洞,攻击者可以利用该漏洞反序列化不受信任的数据。当攻击者拥有对 Log4j 配置的写入权限,或者该配置引用了攻击者有权访问的 LDAP 服务时,攻击者可以进行此类攻击。攻击者可以通过提供 TopicConnectionFactorBinderingName 配置,使 JMSSink 执行 JNDI 请求,从而导致远程代码执行,其方式与 CVE-2021-4104 类似。
请注意,此问题仅影响 Log4j 1.x,当其专门配置为使用 JMSSink 时才会出现,而 JMSSink 并非默认配置。
红帽文章包含详细信息:
Java 日志库 Apache Log4j 1.x 版本中发现了一个漏洞。如果部署的应用程序配置为使用 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 的默认配置。
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 chainsaw 组件中发现了一个缺陷,该缺陷会导致某些日志条目的内容被反序列化,并可能允许代码执行。
此 CVE 仅影响使用 Chainsaw 及其功能来监听使用 SocketAppender 发送的 LoggingEvent 对象的应用程序,而 OOTB Windchill 配置中既未启用该功能,也未从 Windchill 代码库中调用该功能。
补充说明:
已确认 Log4j 1.x 不存在针对 Log4j 2.x 报告的 CVE-2021-44228 漏洞。请参阅CS358789。
对第三方捆绑组件的影响:
上述“适用范围”区域中指定的产品版本均包含 log4j1.2.17 版本。
已识别的 CVE 对应的 Apache Log4j 版本:所有 1.2.X 版本,直至 1.2.17。
CVE-2021-4104
在 Log4j 1.x 中,如果 Log4j 的配置文件中启用了 JMSAppender,它将执行 JNDI 查找。如果使用 Log4j 1.x 的应用程序的配置中使用了 JNDI(JMSAppender),则可能会受到影响。
基本 CVSS 分数:7.5 CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
红帽公司已识别出 RHSB-2021-009 ( CVE-2021-4104 )
https://access.redhat.com/security/cve/CVE-2021-4104
Redhat Bugzilla文章包含更多详细信息:
Java 日志库 Apache Log4j 1.x 版本中发现了一个漏洞。如果部署的应用程序配置为使用 JMSAppender,则远程攻击者可以利用此漏洞在服务器上执行代码。
CVE-2021-4104 仅影响 Log4j 1.2,当产品专门配置为使用 JMSAppender 时,而这不是 Windchill 的开箱即用配置。
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 对象。这些日志事件会按照本地策略进行记录,如同它们是在本地生成的一样。SocketAppender 会将序列化的 LoggingEvent 对象发送到服务器端,而该对象没有任何布局信息。在远程主机上,通过反序列化,您可以访问所有相同的信息,并可以指定日志的打印布局。
- 漏洞存在于 log4j 的 SocketServer 类中,而 log4j 通过该类访问远程日志的功能在 Windchill 默认设置中并未启用,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 1.x 中的 JMSSink 都存在安全漏洞,攻击者可以利用该漏洞反序列化不受信任的数据。当攻击者拥有对 Log4j 配置的写入权限,或者该配置引用了攻击者有权访问的 LDAP 服务时,攻击者可以进行此类攻击。攻击者可以通过提供 TopicConnectionFactorBinderingName 配置,使 JMSSink 执行 JNDI 请求,从而导致远程代码执行,其方式与 CVE-2021-4104 类似。
请注意,此问题仅影响 Log4j 1.x,当其专门配置为使用 JMSSink 时才会出现,而 JMSSink 并非默认配置。
红帽文章包含详细信息:
Java 日志库 Apache Log4j 1.x 版本中发现了一个漏洞。如果部署的应用程序配置为使用 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 的默认配置。
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 chainsaw 组件中发现了一个缺陷,该缺陷会导致某些日志条目的内容被反序列化,并可能允许代码执行。
此 CVE 仅影响使用 Chainsaw 及其功能来监听使用 SocketAppender 发送的 LoggingEvent 对象的应用程序,而 OOTB Windchill 配置中既未启用该功能,也未从 Windchill 代码库中调用该功能。
补充说明:
已确认 Log4j 1.x 不存在针对 Log4j 2.x 报告的 CVE-2021-44228 漏洞。请参阅CS358789。
| 风寒效应 | Apache Log4j 版本 | 附加信息 |
| 11.0 M030 | log4j 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 | log4j 1.x | 强烈建议立即采取行动(有关 PTC 的建议,请参阅决议部分) |
对第三方捆绑组件的影响:
- 受支持的第三方捆绑组件也可能存在漏洞。
- Solr
- Cognos
- Tibco
- PTC正与各供应商合作,确定此次事件的影响、可利用性以及建议的应对措施。此外,内部调查也在进行中,以确定任何可能的临时措施来降低安全风险。
- 请参阅下表(解决方案部分)以获取每个第三方组件的最新更新。
- FlexPLM – 请遵循建议的操作步骤。如有其他注意事项,我们将另行通知。
- Navigate/ThingWorx – CS359107
- Ping Federate - 分析中
- Wincom – 目前没有任何扩展程序直接使用 log4j v1。该库的引入是为了满足代码中的依赖项。分析已确认不存在任何攻击面或已知漏洞。Windchill Extension Platform 1.11.2 中已移除对 log4j 1.x 的引用,但建议升级到最新版本 1.12.2,该版本可从 windchill-extensions.ptc.com 获取。
这是文章 359009 的 PDF 版本,可能已过期。最新版本 CS359009