漏洞描述:
Log4j是Apache旗下的一款Java开源日志记录工具,在Java生态圈中得到广泛应用。本次漏洞使攻击者可利用Log4j2进行跳过验证,进行远程代码执行;由于Log4j2的广泛应用于java应用中,所以该次漏洞影响非常严重。
涉及版本:
Log4j2 2.0-2.14都受影响
漏洞解决:
关键:通过升级版本为安全版本,经查验安全版本为2.15.0
对于漏洞,官方紧急发布了两个安全的测试版本2.15.0-rc1与2.15.0-rc2,下载该两个版本的jar包做替换即可,但对于项目而言,这是必须手动导入jar包,而依赖人工不是一件好事;好在随后发布了正式的2.15.0版本,于maven远程仓库能够直接作为依赖导进项目,不需要依赖人工。
按照一般的springboot项目,对log4j的利用情况主要用到log4j/log4j2-api/log4j2-to-slf4j,其中log4j2-api与log4j2-to-slf4j皆为2.12.1版本,在漏洞涉及版本范围内,需要升级为2.15.0。需要注意的是,Springboot-starter默认导入log4j2-api与log4j2-to-slf4j,所以首先要在该依赖排除掉它们(否则可能会覆盖我们所导入的依赖),如图所示:
然后,再添加log4j2-api与log4j2-to-slf4j的maven依赖,刷新maven即可,如图所示:
修复检查:
把log4f2从2.12.1升级为2.15.0版本后,需要检查升级后的日志功能是否能正常运行,启动springboot程序,编译通过,启动过程的日志打印功能正常如初,调用相应的接口也如期得到相应正确的回应,目前暂且看来升级后的log4j2不需要做额外的调整,可以做到兼容。