安全漏洞介绍
Apache Log4j2是一款优秀的Java日志框架。由于 Apache Log4j2 某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。漏洞利用无需特殊配置。
通过网上公开资料,这个漏洞的细节已经完全公开
- CVE-2017-5645:Apache Log4j 套接字接收器反序列化漏洞(严重 - 中等)
- CVE-2020-9488:Apache Log4j SMTP 附加程序中主机不匹配的证书验证不正确(严重性 - 低)
- CVE-2021-44228:Apache Log4j2 JNDI 功能无法防止攻击者控制的 LDAP 和其他与 JNDI 相关的端点(严重性 - 严重)
- CVE-2021-45046:Apache Log4j2 线程上下文查找模式在某些非默认配置中容易受到远程代码执行的影响(严重性 - 严重)
- CVE-2021-45105:Apache Log4j2 并不总是能防止查找评估中的无限递归(严重性 - 严重)
- CVE-2021-44832:当攻击者控制配置时,Apache Log4j2 容易通过 JDBC Appender 受到 RCE 的攻击(严重性 - 中等)
检测代码库中是否有 Log4j 2.x
在idea的插件市场搜索Maven Helper关键字,找到Maven Helper并安装
安装了Maven Helper以后,打开pom文件,左下角出现依赖器分析栏目
安全建议
如果您使用的是 Apache Log4j 库,请确保更新到最新版本,因为上面列出的安全漏洞已被修补。这是目前最好的衡量标准。
升级到 Log4j 2.3.2(适用于 Java 6)、2.12.4(适用于 Java 7)或 2.17.1 或最新版本(适用于 Java 8 及更高版本)