一、漏洞描述:
當攻擊者具有對Log4j配置的寫訪問權(quán)限時,Log4j 1.2中的JMSAppender容易受到不受信任數(shù)據(jù)反序列化的攻擊。攻擊者可以提供TopicBindingName和TopicConnectionFactoryBindingName配置,導致JMSApender執(zhí)行JNDI請求,從而以與CVE-2021-44228類似的方式執(zhí)行遠程代碼。
注意:當專門配置使用JMSApender時,此問題僅影響Log4j 1.2,這不是默認設(shè)置。Apache Log4j 1.2于2015年8月終止使用。用戶應該升級到Log4j 2,因為它解決了以前版本中的許多其他問題。
二、漏洞利用方式:
由于此漏洞的利用方式與CVE-2021-44228相同,已有規(guī)則可以滿足攻擊檢測需要。
三、處置方法:
(一)升級Log4j到最新版本
(二)若暫時無法進行升級操作,可先用下列措施進行臨時緩解:
1、添加jvm參數(shù)啟動:-Dlog4j2.formatMsgNoLookups=true
2、在應用的classpath下添加log4j2.component.properties配置文件,文件內(nèi)容為:log4j2.formatMsgNoLookups=true
3、設(shè)置系統(tǒng)環(huán)境變量 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、限制受影響應用對外訪問互聯(lián)網(wǎng),并在邊界對dnslog相關(guān)域名訪問進行檢測。
部分公共dnslog平臺如下:
ceye.io
dnslog.link
dnslog.cn
dnslog.io
tu4.org
burpcollaborator.net
s0x.cn