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

2022-09-03 13:50:20

最近发现了一个关键的log4j漏洞

我想升级我当前的Solr实例使用的log4j,所以我在这里检查了一下。但是,我在“/服务器/资源/”文件夹中看不到文件。我看到的只是:log4j.properties

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

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


答案 1

您指向的链接适用于较旧版本的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”
  • (视窗)编辑 solr.in.cmd 文件以包含:设置 SOLR_OPTS=%SOLR_OPTS% -Dlog4j2.formatMsgNoLookups=true
  • 遵循 https://logging.apache.org/log4j/2.x/security.html 中列出的任何其他指示

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


答案 2

将所有 jar 替换为 lib/ext 中相应的 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

推荐