sudo本地提權漏洞(CVE-2021-3156)
發布時間 2021-01-270x00 漏洞概述
CVE ID | CVE-2021-3156 | 時 間 | 2021-01-27 |
類 型 | 權限提升 | 等 級 | 高危 |
遠程利用 | 否 | 影響范圍 |
0x01 漏洞詳情
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/