- UID
- 18
- 注册
- 2017/10/06
- 消息
- 87
- 解决方案
- 3
- 黄金
- 10,653G
- 中国
- 广东省
- 广州市 网友
- #1
请注意,本公告是针对于服务器上运行的ElasticSearch服务,与论坛中安装的EnhancedSearch插件无关!
根据公告可以归纳出以下几个关键点:
“version”中的"number"代表的就是版本号
想要更新版本的话,建议重置主机后重新安装(本站中有数个教程,可以看看我写的),因为滚动升级的步骤还是有点麻烦的
想要进行滚动升级的话,请查阅官方文档:https://www.elastic.co/guide/index.html
Elasticsearch简要公告:
与JDK (JDK9+)的最新版本一起使用的Elasticsearch支持版本(6.8.9+,7.8+)不容易受到远程代码执行或信息泄漏的影响。Elasticsearch公告(esa - 2021 - 31)
由于使用Java Security Manager, Elasticsearch 6和7不容易受到带有此漏洞的远程代码执行的影响。在JDK8或更低版本上运行的Elasticsearch容易通过DNS发生信息泄漏,这可以通过下面提到的JVM选项修复。此选项对Elasticsearch版本5.6.11+、6.4+和7.0+有效。
截至 2021 年 12 月 13 日,我们已经发布了 Elasticsearch 6.8.21 和 7.16.1。
它们设置了下面标识的 JVM 选项,并出于谨慎考虑从 Log4j 中删除了易受攻击的 JndiLookup 类。
如果您使用的是 6.4.0 之前的 6.x 版本并且无法升级,您可以按照此处的说明进行操作.
Elasticsearch 5 容易受到远程代码执行和通过DNS的信息泄漏的影响。
对于版本5.6.11 - 5.6.16,可以通过设置JVM选项来缓解这一问题。
使用早期5.x的用户,建议升级到5.6.16。
如果你的5.x版本在5.6.11之前且无法升级,您可以按照 此处的说明进行操作。
请注意,虽然我们提供了这些补救措施,但Elasticsearch 5不是受支持的版本,我们总是建议更新到最新版本。
Elasticsearch 2 及更早版本使用了不易受新发现缺陷影响的 Log4j 版本。
请注意,Elasticsearch 2 不是受支持的版本,我们始终建议更新到最新版本。
对于在 Elastic Cloud 上运行的用户,7.2+ 版本从来不会受到 RCE 或信息泄漏的影响,因为这些版本已经在 JDK11 或更高版本上运行。
我们建议运行早于 7.2 的任何版本的 Elasticsearch 的用户尽快重启他们的集群——下面标识的 JVM 选项将自动应用并在重启时完全保护集群。
任何新集群都将在部署时包含 JVM 选项。有关更多详细信息,请参阅 Elastic Cloud 公告
影响版本:
Elasticsearch 5.0.0+ 版本包含一个易受攻击的 Log4j 版本。Elasticsearch 5 容易受到远程代码执行和 DNS 信息泄漏的影响。我们已经确认安全管理器减轻了 Elasticsearch 6 和 7 中的远程代码执行攻击
解决方案和措施之一:
最简单的补救方法是设置JVM选项 3.3k-Dlog4j2.formatMsgNoLookups=true 并重启集群的每个节点。
对于 Elasticsearch 5.6.11+、6.4+ 和 7.0+,这提供了针对 RCE 和信息泄漏攻击的全面保护。
用户可以升级到 Elasticsearch 7.16.1 241或6.8.21 158, 于 2021 年 12 月 13 日发布。
这些版本没有升级 Log4j 包,而是通过设置JVM 选项来缓解漏洞 -Dlog4j2.formatMsgNoLookups=true 并从 Log4j 包中删除易受攻击的 JndiLookup 类。
注意:在这两种情况下,一些漏洞扫描器可能会继续仅基于 Log4j 版本来标记与此漏洞相关联的 Elasticsearch。但是,上述任何缓解措施都足以保护远程代码执行和信息泄漏。
[12 月 14 日更新] Log4j 2.16.0 已发布以解决 CVE-2021-45046。这不会更改上述 Elasticsearch 的缓解指南,不需要更新到 Log4j 2.16.0。Elastic 指导仍然是应用上述 JVM 选项并重新启动所有节点,或者将 Elasticsearch 升级到 7.16.1 或 6.8.21。
如果 Elasticsearch 由 ECK 管理,请在 Elasticsearch 自定义资源podTemplate 规范中设置 JVM 选项 419
如果 Elasticsearch 由 ECE 管理,对于 6.x 和 <7.2 版本,我们建议重新安装堆栈包,该堆栈包已被修补以包含 JVM 选项缓解。重新安装相关堆栈包后,我们建议重新启动部署。对于 5.x 系列,我们建议覆盖 JVM 选项以添加可缓解漏洞的属性,并重新启动集群以获取更改:有关详细信息和指导,请联系 Elastic 支持。
Elasticsearch 信息泄露详情
Log4j 中的信息泄漏漏洞使攻击者能够通过 DNS 泄露某些环境数据——它不允许访问 Elasticsearch 集群内的数据。可以泄漏的数据仅限于通过 Log4j“查找”可用的数据,其中包括系统环境变量和来自其他来源的一组有限的环境数据。有关完整列表,请参阅Log4j 查找文档 539.
PoC 将 RCE 扩展到最新 Java 版本的说明
我们正在积极监控安全社区的发展,例如这个 74,旨在扩展 JDK 和应用此漏洞的场景。我们在 Elasticsearch 6 和 7 中实现的 Java 安全管理器,结合 JDK9 或更高版本,继续防止所有已知的 PoC。尽管这些努力寻求提供可行的 RCE,即使 com.sun.jndi.ldap.object.trustURLCodebase=false(如最近的 JDK),我们的安全管理器在此过程中更早地切断了攻击,防止远程和本地(在类路径)攻击的变体。
根据公告可以归纳出以下几个关键点:
- 6.8.9+/7.8+ 不易受影响(所以更新最新的6/7版本是最好的解决方法!)
- 5.6.11-5.6.16/6.4+/7.0+ 可以通过设置JVM选项来缓解该问题
- 早期5.x/6.x版本可以升级到上述版本然后按↑上述方法解决
- 无法升级的早期5.x版本可以按照 此处的说明进行操作
- 无法升级的早期6.x版本可以按照此处的说明进行操作
代码:
curl -X GET "localhost:9200/"
想要更新版本的话,建议重置主机后重新安装(本站中有数个教程,可以看看我写的),因为滚动升级的步骤还是有点麻烦的
想要进行滚动升级的话,请查阅官方文档:https://www.elastic.co/guide/index.html
Elasticsearch简要公告:
与最新版本的 JDK (JDK9+) 一起使用的受支持的 Elasticsearch 版本(6.8.9+、7.8+)不易受到远程代码执行或信息泄露的影响。
这是由于 Elasticsearch 使用了 Java 安全管理器。
大多数其他版本(5.6.11+、6.4.0+ 和 7.0.0+)可以通过简单的 JVM 属性更改来保护。
该信息泄露漏洞不允许访问 Elasticsearch 集群内的数据。
我们已经发布了 Elasticsearch 7.16.1 和 6.8.21,它们默认包含 JVM 属性,并出于谨慎考虑删除了 Log4j 的某些组件。
这适用于 CVE-2021-44228 和 CVE-2021-45046。
与JDK (JDK9+)的最新版本一起使用的Elasticsearch支持版本(6.8.9+,7.8+)不容易受到远程代码执行或信息泄漏的影响。Elasticsearch公告(esa - 2021 - 31)
由于使用Java Security Manager, Elasticsearch 6和7不容易受到带有此漏洞的远程代码执行的影响。在JDK8或更低版本上运行的Elasticsearch容易通过DNS发生信息泄漏,这可以通过下面提到的JVM选项修复。此选项对Elasticsearch版本5.6.11+、6.4+和7.0+有效。
截至 2021 年 12 月 13 日,我们已经发布了 Elasticsearch 6.8.21 和 7.16.1。
它们设置了下面标识的 JVM 选项,并出于谨慎考虑从 Log4j 中删除了易受攻击的 JndiLookup 类。
如果您使用的是 6.4.0 之前的 6.x 版本并且无法升级,您可以按照此处的说明进行操作.
Elasticsearch 5 容易受到远程代码执行和通过DNS的信息泄漏的影响。
对于版本5.6.11 - 5.6.16,可以通过设置JVM选项来缓解这一问题。
使用早期5.x的用户,建议升级到5.6.16。
如果你的5.x版本在5.6.11之前且无法升级,您可以按照 此处的说明进行操作。
请注意,虽然我们提供了这些补救措施,但Elasticsearch 5不是受支持的版本,我们总是建议更新到最新版本。
Elasticsearch 2 及更早版本使用了不易受新发现缺陷影响的 Log4j 版本。
请注意,Elasticsearch 2 不是受支持的版本,我们始终建议更新到最新版本。
对于在 Elastic Cloud 上运行的用户,7.2+ 版本从来不会受到 RCE 或信息泄漏的影响,因为这些版本已经在 JDK11 或更高版本上运行。
我们建议运行早于 7.2 的任何版本的 Elasticsearch 的用户尽快重启他们的集群——下面标识的 JVM 选项将自动应用并在重启时完全保护集群。
任何新集群都将在部署时包含 JVM 选项。有关更多详细信息,请参阅 Elastic Cloud 公告
影响版本:
Elasticsearch 5.0.0+ 版本包含一个易受攻击的 Log4j 版本。Elasticsearch 5 容易受到远程代码执行和 DNS 信息泄漏的影响。我们已经确认安全管理器减轻了 Elasticsearch 6 和 7 中的远程代码执行攻击
解决方案和措施之一:
最简单的补救方法是设置JVM选项 3.3k-Dlog4j2.formatMsgNoLookups=true 并重启集群的每个节点。
对于 Elasticsearch 5.6.11+、6.4+ 和 7.0+,这提供了针对 RCE 和信息泄漏攻击的全面保护。
用户可以升级到 Elasticsearch 7.16.1 241或6.8.21 158, 于 2021 年 12 月 13 日发布。
这些版本没有升级 Log4j 包,而是通过设置JVM 选项来缓解漏洞 -Dlog4j2.formatMsgNoLookups=true 并从 Log4j 包中删除易受攻击的 JndiLookup 类。
注意:在这两种情况下,一些漏洞扫描器可能会继续仅基于 Log4j 版本来标记与此漏洞相关联的 Elasticsearch。但是,上述任何缓解措施都足以保护远程代码执行和信息泄漏。
[12 月 14 日更新] Log4j 2.16.0 已发布以解决 CVE-2021-45046。这不会更改上述 Elasticsearch 的缓解指南,不需要更新到 Log4j 2.16.0。Elastic 指导仍然是应用上述 JVM 选项并重新启动所有节点,或者将 Elasticsearch 升级到 7.16.1 或 6.8.21。
如果 Elasticsearch 由 ECK 管理,请在 Elasticsearch 自定义资源podTemplate 规范中设置 JVM 选项 419
如果 Elasticsearch 由 ECE 管理,对于 6.x 和 <7.2 版本,我们建议重新安装堆栈包,该堆栈包已被修补以包含 JVM 选项缓解。重新安装相关堆栈包后,我们建议重新启动部署。对于 5.x 系列,我们建议覆盖 JVM 选项以添加可缓解漏洞的属性,并重新启动集群以获取更改:有关详细信息和指导,请联系 Elastic 支持。
Elasticsearch 信息泄露详情
Log4j 中的信息泄漏漏洞使攻击者能够通过 DNS 泄露某些环境数据——它不允许访问 Elasticsearch 集群内的数据。可以泄漏的数据仅限于通过 Log4j“查找”可用的数据,其中包括系统环境变量和来自其他来源的一组有限的环境数据。有关完整列表,请参阅Log4j 查找文档 539.
PoC 将 RCE 扩展到最新 Java 版本的说明
我们正在积极监控安全社区的发展,例如这个 74,旨在扩展 JDK 和应用此漏洞的场景。我们在 Elasticsearch 6 和 7 中实现的 Java 安全管理器,结合 JDK9 或更高版本,继续防止所有已知的 PoC。尽管这些努力寻求提供可行的 RCE,即使 com.sun.jndi.ldap.object.trustURLCodebase=false(如最近的 JDK),我们的安全管理器在此过程中更早地切断了攻击,防止远程和本地(在类路径)攻击的变体。
最后编辑: