Elasticsearch 5.6.16 补丁 log4j 与 2.16

Elasticsearch 5.6.16 patch log4j with 2.16

由于 log4j 漏洞,我需要修补无法立即更新的 elasticsearch 5.6.16 实例。

docker图像使用:

elasticsearch 5.6.16 可以与 log4j-core-2.16 一起使用吗?

将两者替换为可在此处找到的核心 jar 是否正确?https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core/2.16.0/

根据official security announcement, if you're running on 5.6.16 you don't need to upgrade Log4J but simply set the following JVM option

-Dlog4j2.formatMsgNoLookups=true

作为额外的缓解措施,您还可以使用以下方法从 log4j JAR 中删除 JndiLookup class:

zip -q -d <ES_HOME>/lib/log4j-core-2.* org/apache/logging/log4j/core/lookup/JndiLookup.class

我们使用的是 Elastic Search 7.1.1,我们成功升级到 2.16 log4j 版本。确保交换 Core 和 Api jar 并重新启动服务器。它会起作用。如果您尝试删除 JNDIlookup class 它会失败。

我们在所有车道上都做到了,而且工作稳定

我们将以下内容用于 ElasticSearch 6.3.1 版。我们必须从 log4j-core-*.jar 文件中删除 JndiLookup.class 易受攻击的 class。

如果您使用 Elasticsearch 5.0.0-5.6.10 和 6.0.0-6.3.2,那么您将必须按照官方 link.

执行以下步骤

https://discuss.elastic.co/t/elasticsearch-5-0-0-5-6-10-and-6-0-0-6-3-2-log4j-cve-2021-44228-cve-2021-45046-remediation/292054