背景
漏洞名称: Apache Log4j 远程代码执行漏洞
漏洞等级: 严重
漏洞描述: Apache Log4j2是一款优秀且应用非常广泛的Java日志框架。2021年11月24日,阿里云安全团队向Apache官方报告了Apache Log4j2远程代码执行漏洞。
由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置,经安全团队验证,Apache Struts2、Apache Solr、Apache Druid、Apache Flink等均受影响。
漏洞细节: 已公开
漏洞PoC: 公开
漏洞EXP: 公开
在野利用: 已存在
影响版本 Apache Log4j 2.x <= 2.14.1
修复步骤
检查本地项目依赖的org.apache.logging.log4j:log4j-api和org.apache.logging.log4j:log4j-core版本号
如果版本号小于2.10.x ,升级到2.14.1
compile "org.apache.logging.log4j:log4j-api:2.14.1"
{
force = true
}
compile "org.apache.logging.log4j:log4j-core:2.14.1"
{
force = true
}
compile "org.apache.logging.log4j:log4j-slf4j-impl:2.14.1"
{
force = true
}
排除掉所有三方包依赖的log4j-api和log4j-core
检查依赖树,确保log4j引入的是最新版
通过gradle dependencies 命令确认不再依赖旧版本log4j组件
修改启动参数 增加 -Dlog4j2.formatMsgNoLookups=true
测试、验证、上线