一、漏洞描述:
当攻击者具有对Log4j配置的写访问权限时,Log4j 1.2中的JMSAppender容易受到不受信任数据反序列化的攻击。攻击者可以提供TopicBindingName和TopicConnectionFactoryBindingName配置,导致JMSApender执行JNDI请求,从而以与CVE-2021-44228类似的方式执行远程代码。
注意:当专门配置使用JMSApender时,此问题仅影响Log4j 1.2,这不是默认设置。Apache Log4j 1.2于2015年8月终止使用。用户应该升级到Log4j 2,因为它解决了以前版本中的许多其他问题。
二、漏洞利用方式:
由于此漏洞的利用方式与CVE-2021-44228相同,已有规则可以满足攻击检测需要。
三、处置方法:
(一)升级Log4j到最新版本
(二)若暂时无法进行升级操作,可先用下列措施进行临时缓解:
1、添加jvm参数启动:-Dlog4j2.formatMsgNoLookups=true
2、在应用的classpath下添加log4j2.component.properties配置文件,文件内容为:log4j2.formatMsgNoLookups=true
3、设置系统环境变量 LOG4J_FORMAT_MSG_NO_LOOKUPS=true
4、使用下列命令,移除log4j-core包中的JndiLookup类文件:
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
注:当且仅当Apache
Log4j >= 2.10版本时,可使用1、2、3、4的任一措施进行防护。
5、采用人工方式禁用JNDI,例:在spring.properties里添加spring.jndi.ignore=true
6、建议使用JDK在11.0.1、8u191、7u201、6u211及以上的高版本,可在一定程度防止RCE。
7、限制受影响应用对外访问互联网,并在边界对dnslog相关域名访问进行检测。
部分公共dnslog平台如下:
ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
burpcollaborator.net
s0x.cn