将 Apache Solr 8.10.1 log4j 2.14.1 版本升级到 2.15 以解决严重漏洞

问题描述 投票:0回答:6

最近发现了一个严重的 log4j 漏洞

我想升级当前 Solr 实例使用的 log4j,所以我在这里检查。 但是,我在“/server/resources/”文件夹中没有看到

log4j.properties
文件。 我所看到的只是:

  • jetty-logging.properties
  • log4j2.xml
  • log4j2-console.xml

这些文件都不包含版本。因此,要升级,下载最新版本的 log4j 并覆盖文件夹“\solr-8.10.1\server\lib xt”中的现有 jar 是否安全,或者推荐的升级步骤是什么?

java solr log4j
6个回答
10
投票

您指向的链接适用于旧版本的 Solr(6.6 而不是 8.10.1)。正确的版本是 https://solr.apache.org/guide/8_10/configuring-logging.html 其中提到使用 log4j 2。

文件 log4j2.xml (甚至是 `log4j.properties)配置日志记录本身,而不是 log4j 的版本。所以更新该文件是无关紧要的。

这是项目页面推荐的内容

2021 年 12 月 10 日,Apache Solr 受 Apache Log4J CVE-2021-44228 影响

...

描述: 8.11.1 之前的 Apache Solr 版本使用容易受到 RCE 攻击的 Apache Log4J 库的捆绑版本。有关完整影响和其他详细信息,请参阅 Log4J 安全页面。

...

缓解措施: 以下任何一项都足以防止 Solr 服务器出现此漏洞:

  • 升级到 Solr 8.11.1 或更高版本(如果可用),其中将包括 log4j2 依赖项的更新版本。
  • 手动更新运行时类路径上的 log4j2 版本并重新启动 Solr 应用程序。
  • (Linux/MacOS) 编辑 solr.in.sh 文件以包含:SOLR_OPTS="$SOLR_OPTS -Dlog4j2.formatMsgNoLookups=true"
  • (Windows) 编辑 solr.in.cmd 文件以包含: set SOLR_OPTS=%SOLR_OPTS% -Dlog4j2.formatMsgNoLookups=true
  • 遵循https://logging.apache.org/log4j/2.x/security.html
  • 中列出的任何其他缓解措施

您所提议的(覆盖文件夹“\solr-8.10.1\server\lib xt”中的现有jar)似乎是第二种方法,所以它应该可以正常工作。只需确保这是包含 log4j 依赖项的正确位置即可。


4
投票

将 lib/ext 中所有 jar 替换为相应的 2.15 版本,然后重新启动 solr。看起来有效。

  1. log4j-api-2.11.0.jar
  2. log4j-core-2.11.0.jar
  3. log4j-1.2-api-2.11.0.jar
  4. log4j-slf4j-impl-2.11.0.jar

2
投票

我将 /opt/solr-7.4.0/server/lib/ext 文件夹中的所有 log4j jar 从 2.11 更新到 2.15,没有发现任何问题。你的方法似乎有效。


2
投票

有了 新的 CVE

SOLR_OPTS
还不够。升级到 2.17 似乎是最好的选择。这对我们有用。

sudo find / -name "*log4j*"
cd /app/solr/solr-7.7.0/server/lib/ext/
sudo curl https://dlcdn.apache.org/logging/log4j/2.17.0/apache-log4j-2.17.0-bin.zip --output apache-log4j-2.17.0-bin.zip
sudo unzip apache-log4j-2.17.0-bin.zip
sudo rm log4j-*-2.11*
sudo cp apache-log4j-2.17.0-bin/{log4j-1.2-api-2.17.0.jar,log4j-api-2.17.0.jar,log4j-core-2.17.0.jar,log4j-slf4j-impl-2.17.0.jar} ./
sudo chown solr:solrgrp *
sudo chmod 755 *
sudo service solr restart

cd /app/solr/solr-7.7.0/contrib/prometheus-exporter/lib/
sudo rm log4j-*-2.11*
sudo cp /app/solr/solr-7.7.0/server/lib/ext/apache-log4j-2.17.0-bin/{log4j-api-2.17.0.jar,log4j-core-2.17.0.jar,log4j-slf4j-impl-2.17.0.jar} ./
sudo chown solr:solrgrp *
sudo chmod 755 *
sudo service solr restart

1
投票

对于 Solr 版本 8.6.4,我现在通过简单地交换“Solr\server\lib xt”下的 5 个 log4j*.jar 文件来更新到 log4j2 2.16。另外我还必须将 slf4j-api.jar 更新到版本 1.7.24。这似乎是开箱即用的。

下载链接:

-> 更新了 lib 文件


1
投票

缓解措施:以下任何一项都足以防止 Solr 服务器出现此漏洞:

  • 升级到 Solr 8.11.1 或更高版本(如果可用),这将 包括 Log4J 依赖项的更新版本 (>= 2.17.0)。

  • 如果 你正在使用Solr的官方docker镜像,它已经是 在 Docker Hub 上列出的支持的所有版本中均已得到缓解: https://hub.docker.com/_/solr。您可能需要重新拉取镜像。

  • 手动更新运行时类路径上的 Log4J 版本并 重新启动您的 Solr 应用程序。

  • (Linux/MacOS) 编辑 solr.in.sh 要包含的文件:SOLR_OPTS="$SOLR_OPTS -Dlog4j2.formatMsgNoLookups=true"

  • (Windows) 编辑 solr.in.cmd 文件以包含: set SOLR_OPTS=%SOLR_OPTS% -Dlog4j2.formatMsgNoLookups=true

  • 遵循https://logging.apache.org/log4j/2.x/security.html

    中列出的任何其他缓解措施

参考:https://solr.apache.org/security.html#apache-solr-affected-by-apache-log4j-cve-2021-44228

就我而言,以下 jar 受到影响并被直接来自 Apache 的最新包替换。使用类似 log4j 检测器 的工具来识别受影响的 jar。

  • %SOLRINST%\sol
© www.soinside.com 2019 - 2024. All rights reserved.