• 我的位置:
  • 首頁
  • -
  • 漏洞預(yù)警
  • -
  • 其他
  • -
  • Sudo權(quán)限提升漏洞
    • 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)版本是未受影響的版本即可。