您所在的位置: 首頁(yè) >
安全研究 >
安全通告 >
Avast/ AVG漏洞影響數(shù)百萬(wàn)設(shè)備
Avast/ AVG漏洞影響數(shù)百萬(wàn)設(shè)備。
Avast和AVG是兩款廣泛使用的安全產(chǎn)品,這些安全產(chǎn)品在Windows設(shè)備中以最高權(quán)限的特權(quán)服務(wù)的形式運(yùn)行。SentinelLabs研究人員在Avast和AVG產(chǎn)品中發(fā)現(xiàn)2個(gè)存在數(shù)十年的高危安全漏洞,影響數(shù)百萬(wàn)用戶(hù)。漏洞CVE編號(hào)為CVE-2022-26522 和CVE-2022-26523,攻擊者利用這兩個(gè)漏洞可以實(shí)現(xiàn)權(quán)限提升、禁用安全產(chǎn)品、覆寫(xiě)系統(tǒng)組件、破壞操作系統(tǒng)、執(zhí)行惡意操作。因?yàn)檫@兩個(gè)漏洞非常相似,因此本文主要分析CVE-2022-26522漏洞技術(shù)細(xì)節(jié)。
漏洞分析
CVE-2022-26522
該漏洞位于kernel驅(qū)動(dòng)aswArPot.sys的socket連接處理器中。
如上圖所示,該函數(shù)首先將當(dāng)前線程附加到目標(biāo)進(jìn)程中,然后使用nt!PsGetProcessPeb獲取當(dāng)前進(jìn)程PEB的指針。然后取回PPEB->ProcessParameters->CommandLine.Length來(lái)分配新緩存。然后復(fù)制PPEB->ProcessParameters->CommandLine.Buffer處用戶(hù)提供的緩存,緩存大小為PPEB->ProcessParameters->CommandLine.Length。
此時(shí),攻擊者可以利用kernel線程的競(jìng)爭(zhēng)條件來(lái)修改Length變量。
Looper線程:
PTEB tebPtr = reinterpret_cast(__readgsqword(reinterpret_cast(&static_cast< NT_TIB* >(nullptr)->Self)));
PPEB pebPtr = tebPtr->ProcessEnvironmentBlock;
pebPtr->ProcessParameters->CommandLine.Length = 2;
while (1) {
pebPtr->ProcessParameters->CommandLine.Length ^= 20000;
}
如上所述,代碼會(huì)獲取PEB結(jié)構(gòu)的指針,然后處理進(jìn)程命令行結(jié)構(gòu)中的length域。該漏洞可以通過(guò)初始化socket連接來(lái)觸發(fā),具體如下:
整個(gè)流程如下所示:
漏洞觸發(fā)后,用戶(hù)可以看到來(lái)自操作系統(tǒng)的告警:
CVE-2022-26523漏洞
該漏洞與CVE-2022-26522類(lèi)似,位于aswArPot+0xbb94中。該函數(shù)會(huì)從用戶(hù)控制的指針中兩次取回length域。該漏洞可以通過(guò)圖像加載回調(diào)等多種方式觸發(fā)。
漏洞影響
漏洞可以從沙箱觸發(fā),漏洞利用可以實(shí)現(xiàn)本地權(quán)限提升。比如,該漏洞利用可以作為第二階段瀏覽器攻擊或執(zhí)行沙箱逃逸。攻擊者利用該漏洞還可以在kernel模式下執(zhí)行代碼,完全控制整個(gè)設(shè)備。攻擊者還可以利用該漏洞繞過(guò)安全產(chǎn)品。
漏洞修復(fù)
SentinelLabs早在2021年12月就發(fā)現(xiàn)了該漏洞,Avast于2022年2月在v22.1版本中修復(fù)了該漏洞。
參考及來(lái)源:https://www.sentinelone.com/labs/vulnerabilities-in-avast-and-avg-put-millions-at-risk/
文章來(lái)源:嘶吼專(zhuān)業(yè)版