📅  最后修改于: 2023-12-03 15:32:45.121000             🧑  作者: Mango
最近,Apache log4j 暴露的一个重大漏洞引起了人们的普遍关注。据悉,该漏洞可被黑客利用来实现任意代码执行。因此,程序员们需要关注该漏洞,并尽快采取必要的措施。
该漏洞是由于 log4j 官方使用了新增的 JNDI 特性,但并未对 JNDI 源注入的字符进行安全限制,致使黑客可以利用 JNDI 远程资源注入(RMI)等攻击手段,实现任意代码执行。
log4j 2.x 版本中,各个子版本受到漏洞的影响情况如下:
官方已提供了以下解决办法,供程序员参考:
将所有使用 log4j 2.x 的应用程序升级至 2.15.0 版本及以上;
如果无法升级,请先在虚拟机(sandbox)环境中安装 log4j 2.15.0,并执行以下命令:
java -jar <path-to-log4j-core-2.15.0.jar> -c "<JNDI_Injection_Payload>"
该命令将验证修改是否生效,如果验证成功,则修改也同样适用于其他危险 JNDI Payload。
官方也提供了一种简单的方式来临时禁用 JNDI 特性,即在程序启动参数中设置以下参数:
-Dlog4j2.formatMsgNoLookups=true
需要注意的是,以上解决办法仅限于解决当前的漏洞风险,建议程序员们定期修补和更新程序中的依赖库,保证程序的稳定性和安全性。