组件漏洞 - Log4j2反序列化
漏洞描述
安全编码
Apache Log4j2是一款优秀的Java日志框架。此次漏洞是由 Log4j2 提供的lookup功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在处理数据时,并未对输入(如${jndi)进行严格的判断,从而造成JNDI注入
【对于第三方依赖组件,需要及时更新版本
漏洞代码
搜索
// log4j-core < 2.15.0-rc1 public String vul(String content) { logger.error(content); return "Log4j2 RCE"; }
安全配置
方案一、升级版本 升级Apache Log4j所有相关应用到>= Log4j-2.15.0官方稳定版本 方案二、临时缓解(选其一) ● 版本>=2.10.0, 修改jvm参数,添加-Dlog4j2.formatMsgNoLookups=true ● 版本>=2.10.0, 代码中配置System.setProperty("log4j2.formatMsgNoLookups", "true"),重新打包jar包 ● 版本>=2.10.0, 修改配置文件log4j2.component.properties :log4j2.formatMsgNoLookups=True 注意:临时缓解对Log4j <= 2.9版本是无效的,因为在2.10版本之前并没有引入这些变量来控制 lookup()。