一、漏洞分析
1.組件介紹
XStream是Java類(lèi)庫(kù),用來(lái)將對(duì)象序列化成XML(JSON)或反序列化為對(duì)象。XStream在運(yùn)行時(shí)使用Java反射機(jī)制對(duì)要進(jìn)行序列化的對(duì)象樹(shù)的結(jié)構(gòu)進(jìn)行探索,并不需要對(duì)對(duì)象作出修改。XStream可以序列化內(nèi)部字段,包括私private和final字段,并且支持非公開(kāi)類(lèi)以及內(nèi)部類(lèi)。在缺省情況下,XStream不需要配置映射關(guān)系,對(duì)象和字段將映射為同名XML元素。但是當(dāng)對(duì)象和字段名與XML中的元素名不同時(shí),XStream支持指定別名。XStream支持以方法調(diào)用的方式,或是Java標(biāo)注的方式指定別名。XStream在進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換時(shí),使用系統(tǒng)缺省的類(lèi)型轉(zhuǎn)換器。同時(shí),也支持用戶(hù)自定義的類(lèi)型轉(zhuǎn)換器。
2.漏洞簡(jiǎn)介
近日,深信服安全團(tuán)隊(duì)監(jiān)測(cè)到一則XStream官方發(fā)布安全補(bǔ)丁的通告,共修復(fù)了14個(gè)安全漏洞,其中包含12個(gè)高危漏洞的信息。
1.高危漏洞描述
漏洞1:CVE-2021-39139 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞2:CVE-2021-39140 XStream拒絕服務(wù)攻擊漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并注入特定的對(duì)象,這可能會(huì)導(dǎo)致無(wú)限循環(huán),從而引起拒絕服務(wù)。
漏洞3:CVE-2021-39141 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞4:CVE-2021-39144 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞5:CVE-2021-39145 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞6:CVE-2021-39146 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞7:CVE-2021-39147 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞8:CVE-2021-39148 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞9:CVE-2021-39149 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞10:CVE-2021-39150 XStream SSRF漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此導(dǎo)致服務(wù)器端偽造請(qǐng)求。
漏洞11:CVE-2021-39151 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞12:CVE-2021-39152 XStream SSRF漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此導(dǎo)致服務(wù)器端偽造請(qǐng)求。
漏洞13:CVE-2021-39153 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
漏洞14:CVE-2021-39154 XStream任意代碼執(zhí)行漏洞
攻擊者通過(guò)構(gòu)造惡意的XML文件,可以繞過(guò)XStream的黑名單機(jī)制,從而觸發(fā)反序列化,導(dǎo)致反序列化代碼執(zhí)行,并因此造成任意代碼執(zhí)行的安全問(wèn)題。
二、影響范圍
XStream 是一種用來(lái)將對(duì)象序列化成XML文件的代碼庫(kù),其在全球范圍內(nèi)應(yīng)用廣泛。由于XStream的歷史版本多采用黑名單的方式來(lái)防護(hù)安全問(wèn)題,從而導(dǎo)致歷史版本多次被繞過(guò)而引發(fā)安全問(wèn)題。本次通告的多個(gè)漏洞將影響XStream小于1.4.18的版本
目前受影響的XStream版本:
XStream < 1.4.18
三、解決方案
1.修復(fù)建議
(1)官方修復(fù)建議
當(dāng)前官方已發(fā)布最新版本已修復(fù)漏洞,建議受影響的用戶(hù)及時(shí)更新官方的最新版本。鏈接如下:
https://x-stream.github.io/news.html
若由于特殊情況,暫時(shí)無(wú)法升級(jí)到最新版本,低版本用戶(hù)可根據(jù)官方建議進(jìn)行加固。鏈接如下:
https://x-stream.github.io/security.html#example
四、時(shí)間軸
2021/8/23 深信服監(jiān)測(cè)到XStream官方發(fā)布安全公告。
2021/8/23 深信服千里目安全實(shí)驗(yàn)室發(fā)布漏洞通告。