sudo本地提權漏洞(CVE-2021-3156)

發布時間 2021-01-27

0x00 漏洞概述

CVE  ID

CVE-2021-3156

時   間

2021-01-27

類   型

權限提升

等   級

高危

遠程利用

影響范圍


 

0x01 漏洞詳情

image.png

 

Sudo是一個功能強大的工具,其允許普通用戶執行root權限命令,大多數基于Unix和Linux的操作系統都包含sudo。

2021年01月26日,sudo被披露存在一個基于堆的緩沖區溢出漏洞(CVE-2021-3156,該漏洞被命名為“Baron Samedit”),可導致本地權限提升。

當在類Unix的操作系統上執行命令時,非root用戶可以使用sudo命令來以root用戶身份執行命令。由于sudo錯誤地在參數中轉義了反斜杠導致堆緩沖區溢出,從而允許任何本地用戶(無論是否在sudoers文件中)獲得root權限,無需進行身份驗證,且攻擊者不需要知道用戶密碼。

安全研究人員于1月26日公開披露了此漏洞,并表示該漏洞已經隱藏了近十年。

 

影響范圍

Sudo 1.8.2 - 1.8.31p2

Sudo 1.9.0 - 1.9.5p1

 

測試系統是否易受此漏洞影響:

1.   以非root用戶身份登錄系統。

2.   運行命令“sudoedit -s /”

3.   如果出現以“ sudoedit:”開頭的錯誤響應,則系統受到此漏洞影響;如果出現以“ usage:”開頭的錯誤響應,則表示該漏洞已被補丁修復。

 

 

0x02 處置建議

建議及時升級sudo至最新版本。

下載鏈接:

https://www.sudo.ws/dist/

 

臨時措施(RedHat)

1.安裝所需的systemtap軟件包和依賴項:

systemtap yum-utils kernel-devel-“ $(uname -r)”

RHEL 7安裝kernel debuginfo:debuginfo-install -y kernel-“ $(uname -r)”

RHEL 8安裝sudo debuginfo:debuginfo-install sudo

 

2.創建以下systemtap腳本:(將文件命名為sudoedit-block.stap)

probe process("/usr/bin/sudo").function("main") {

        command = cmdline_args(0,0,"");

        if (strpos(command, "edit") >= 0) {

                raise(9);

        }

}

 

3.使用以下命令安裝腳本:(使用root)

#nohup stap -g sudoedit-block.stap&

這將輸出systemtap腳本的PID編號,該腳本將導致易受攻擊的sudoedit二進制文件停止工作,sudo命令仍將照常工作。

注意,上述更改會在重啟后失效,必須在每次重啟后重新應用。

 

4.一旦安裝了補丁程序,就可以通過終止systemtap進程來刪除systemtap腳本。例如,通過使用以下命令,其中7590是systemtap進程的PID。

#kill -s SIGTERM 7590

 

 

0x03 參考鏈接

https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit

https://access.redhat.com/security/cve/CVE-2021-3156

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156

https://www.bleepingcomputer.com/news/security/new-linux-sudo-flaw-lets-local-users-gain-root-privileges/

 

0x04 時間線

2021-01-26  Qualys披露漏洞

2021-01-27  RedHat發布安全公告

2021-01-27  VSRC發布安全通告

 

0x05 附錄

 

CVSS評分標準官網:http://www.first.org/cvss/

image.png