- CNNVD編號(hào):未知
- 危害等級(jí): 高危
- CVE編號(hào):CVE-2021-3156
- 漏洞類型: 權(quán)限提升
- 威脅類型:未知
- 廠 商:未知
- 漏洞來源:深信服
- 發(fā)布時(shí)間:2021-01-28
- 更新時(shí)間:2021-01-28
漏洞簡介
1、組件介紹
Sudo是linux及其他類unix系統(tǒng)下的常用指令,用于允許普通用戶執(zhí)行部分root命令的工具,提高權(quán)限控制安全性。
2、漏洞描述
近日,深信服安全團(tuán)隊(duì)監(jiān)測(cè)到一則Sudo組件存在全線提升漏洞的信息,漏洞編號(hào):CVE-2021-3156,漏洞危害:高危。該漏洞是由于Sudo程序在set_cmnd()函數(shù)存在堆溢出,攻擊者可利用該漏洞在獲得低權(quán)限的情況下,構(gòu)造惡意數(shù)據(jù)進(jìn)行提權(quán),獲取服務(wù)器最高權(quán)限。
3、漏洞分析
Sudo在命令行中工作時(shí),執(zhí)行在shell -c模式下,如果有-s命令行參數(shù),則設(shè)置MODE_SHELL標(biāo)志。
該模式下的parse_args函數(shù)對(duì)輸入進(jìn)行了語法檢查,其中對(duì)含有\(zhòng)的命令的轉(zhuǎn)義。此后這些命令在set_cnmd將命令行參數(shù)鏈接到緩沖區(qū)user_args,用于按照語法解析后的含義執(zhí)行,但是在命令以單個(gè)\結(jié)尾時(shí),會(huì)導(dǎo)致循環(huán)判定條件始終為非終止符,從而讀取輸入信息至內(nèi)存越界。
set_cnmd中的代碼和parse_args中的代碼被不同的條件限定,所以這種情況由于前置判定條件,僅能在同時(shí)設(shè)置MODE_EDIT和MODE_SHELL時(shí)存在,一般情況下因?yàn)樵O(shè)置MODE_EDIT會(huì)導(dǎo)致重置valid_flags,刪除MODE_SHELL從而無法觸發(fā)該漏洞。
但是當(dāng)執(zhí)行的身份是sudoedit而不是sudo時(shí),會(huì)自動(dòng)設(shè)置MODE_EDIT但不重置valid_flags.(同時(shí)設(shè)置MODE_CHECK和MODE_SHELL也可繞過判定,但是因?yàn)橥瑯訒?huì)導(dǎo)致重置,無法實(shí)現(xiàn))這時(shí)會(huì)避免轉(zhuǎn)義代碼,到達(dá)易受攻擊的代碼。
漏洞公示
在使用受影響版本Sudo的Ubuntu設(shè)備復(fù)現(xiàn)該漏洞,效果如下:
參考網(wǎng)站
受影響實(shí)體
Sudo是絕大多數(shù)類Unix系統(tǒng)默認(rèn)的用戶權(quán)限切換程序,使用量極大。且此漏洞自1.8.2版本引入起,已經(jīng)有近十年時(shí)間,全球有數(shù)千萬操作系統(tǒng)使用了受影響版本的Sudo。此漏洞涉及用戶量過多,導(dǎo)致漏洞影響較大。
目前受影響的Sudo版本:
Sudo 1.8.2 - 1.8.32p2
Sudo 1.9.0 - 1.9.5p1
補(bǔ)丁
1、自檢方案
使用命令
sudo -V
如出現(xiàn)的版本號(hào)位于受影響的區(qū)間內(nèi),則漏洞存在;
使用命令
sudoedit -s /
如出現(xiàn)sudoedit開頭的報(bào)錯(cuò),則漏洞存在,出現(xiàn)usage開頭的報(bào)錯(cuò)則不受影響。
2、官方修復(fù)建議
當(dāng)前官方已發(fā)布最新版本,建議受影響的用戶及時(shí)更新升級(jí)到最新版本。鏈接如下:
https://www.sudo.ws/dist/
可以使用以下命令進(jìn)行升級(jí):
wget http://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz
tar -zxf sudo-1.9.5p2.tar.gz
cd sudo-1.9.5p2
./configure
make
sudo make install
最后執(zhí)行sudo -V確認(rèn)版本是未受影響的版本即可。