2018年4月26日,Drupal官方發(fā)布新補(bǔ)丁和安全公告,修復(fù)了編號(hào)為CVE-2018-7602的遠(yuǎn)程代碼執(zhí)行漏洞,此漏洞源于3月28日的更新版中對(duì)編號(hào)為CVE-2018-7600的漏洞修復(fù)不完全,導(dǎo)致補(bǔ)丁被繞過,可以造成任意代碼執(zhí)行。
目前,已經(jīng)發(fā)現(xiàn)針對(duì)CVE-2018-7602/CVE-2018-7600漏洞的在野利用,且部分利用代碼已經(jīng)公開。360-CERT對(duì)此漏洞進(jìn)行了技術(shù)分析,建議使用Drupal開源內(nèi)容管理系統(tǒng)的用戶盡快進(jìn)行更新。
影響版本
Drupal 7.x,8.x
修復(fù)版本
Drupal 7.59,Drupal 8.5.3,Drupal 8.4.8
修復(fù)補(bǔ)丁
注意:此補(bǔ)丁只針對(duì)CVE-2018-7602漏洞,針對(duì)CVE-2018-7600修復(fù)方式查看
CVE-2018-7600:Drupal核心遠(yuǎn)程代碼執(zhí)行漏洞預(yù)警。
對(duì)CVE-2018-7600漏洞的補(bǔ)丁通過過濾帶有#
的輸入來處理請(qǐng)求(GET,POST,COOKIE,REQUEST)中數(shù)據(jù)。
但是Drupal 應(yīng)用還會(huì)處理path?destination=URL
形式的請(qǐng)求,發(fā)起請(qǐng)求需要對(duì)destination=URL
中的URL進(jìn)行URL編碼,當(dāng)對(duì)URL中的#
進(jìn)行編碼兩次,就可以繞過sanitize()
函數(shù)過濾。
構(gòu)造特殊請(qǐng)求繞過過濾代碼
POST /drupal-7.59/drupal-7.59/node/9/delete?destination=node?q[%2523][]=passthru%26q[%2523type]=markup%26q[%2523markup]=whoami
其中%2523
是對(duì)#
的兩次URL編碼。
WEB中間件對(duì)%2523
解碼獲得%23
繞過sanitize()
,stripDangrousValues
函數(shù)檢查。
在Drupal應(yīng)用對(duì)destination URL
進(jìn)行處理時(shí),會(huì)再次解碼%23
,獲得#
。
使用parse_str,并存入options,還需要通過其他步驟來觸發(fā)漏洞。
增加對(duì)destination URL
安全處理
限定parse_str只對(duì)string參數(shù)做處理
并在可能觸發(fā)漏洞的文件模塊增加處理
2018-03-28 Drupal 官方發(fā)布針對(duì)CVE-2018-7600漏洞的補(bǔ)丁和安全公告
2018-03-29 360-CERT 發(fā)布CVE-2018-7600:Drupal核心遠(yuǎn)程代碼執(zhí)行漏洞預(yù)警
2018-04-13 360-CERT 發(fā)布CVE-2018-7600:漏洞分析報(bào)告
2018-04-26 Drupal 官方發(fā)布針對(duì)CVE-2018-7602漏洞的補(bǔ)丁和安全公告
2018-04-26 360-CERT 發(fā)布CVE-2018-7602:Drupal核心遠(yuǎn)程代碼執(zhí)行漏洞分析預(yù)警