📜  log4j 哪个版本受影响 (1)

📅  最后修改于: 2023-12-03 15:32:45.121000             🧑  作者: Mango

log4j 哪个版本受影响

最近,Apache log4j 暴露的一个重大漏洞引起了人们的普遍关注。据悉,该漏洞可被黑客利用来实现任意代码执行。因此,程序员们需要关注该漏洞,并尽快采取必要的措施。

漏洞概述

该漏洞是由于 log4j 官方使用了新增的 JNDI 特性,但并未对 JNDI 源注入的字符进行安全限制,致使黑客可以利用 JNDI 远程资源注入(RMI)等攻击手段,实现任意代码执行。

受影响版本

log4j 2.x 版本中,各个子版本受到漏洞的影响情况如下:

  • log4j 2.0-2.11.1 版本全部受到漏洞影响;
  • log4j 2.12.0、2.13.0 版本中,MDC 的 JNDI 特性受到漏洞影响;
  • log4j 2.13.1、2.14.0、2.15.0 版本中的 JNDI 注入漏洞已被修复。
解决方法

官方已提供了以下解决办法,供程序员参考:

  1. 将所有使用 log4j 2.x 的应用程序升级至 2.15.0 版本及以上;

  2. 如果无法升级,请先在虚拟机(sandbox)环境中安装 log4j 2.15.0,并执行以下命令:

    java -jar <path-to-log4j-core-2.15.0.jar> -c "<JNDI_Injection_Payload>"
    

    该命令将验证修改是否生效,如果验证成功,则修改也同样适用于其他危险 JNDI Payload。

  3. 官方也提供了一种简单的方式来临时禁用 JNDI 特性,即在程序启动参数中设置以下参数:

    -Dlog4j2.formatMsgNoLookups=true
    

需要注意的是,以上解决办法仅限于解决当前的漏洞风险,建议程序员们定期修补和更新程序中的依赖库,保证程序的稳定性和安全性。