漏洞描述
Sudo是一個(gè)功能強(qiáng)大的實(shí)用程序,大多數(shù)基于Unix和Linux的操作系統(tǒng)都包含Sudo。它允許用戶使用其他用戶的安全特權(quán)運(yùn)行程序。2021年1月27日,阿里云應(yīng)急響應(yīng)中心監(jiān)控到國(guó)外安全研究人員披露了Sudo 堆緩沖區(qū)溢出致本地提權(quán)漏洞,漏洞編號(hào)為 CVE-2021-3156。任何本地用戶(包括普通用戶和系統(tǒng)用戶,sudoer和非sudoers)若成功利用該漏洞,可在無(wú)需密碼的情況下獲得root權(quán)限。阿里云應(yīng)急響應(yīng)中心提醒 sudo 用戶盡快采取安全措施阻止漏洞攻擊。
漏洞評(píng)分
CVE-2021-3156 高危
影響版本
Sudo 1.9.0 到 1.9.5p1 所有穩(wěn)定版(默認(rèn)配置)
Sudo 1.8.2 到 1.8.31p2 所有舊版本(默認(rèn)配置)
安全版本
Sudo 1.9.5p2 或更新版本
安全建議
1. 下載升級(jí)sudo軟件包,下載鏈接為: https://www.sudo.ws/dist/
2. 使用 systemtap 執(zhí)行以下命令進(jìn)行臨時(shí)緩解:
首先,安裝所需的 systemtap 軟件包和依賴項(xiàng):
systemtap yum-utils kernel-devel-"$(uname -r)"
然后,對(duì)于RHEL 7
,使用命令安裝 kernel debuginfo:debuginfo-install -y kernel-"$(uname -r)"
。
對(duì)于RHEL 8
,使用命令安裝 sudo debuginfo:debuginfo-install sudo
。
接著,創(chuàng)建以下 systemtap 腳本,并將文件命名為 sudoedit-block.stap:
probe process("/usr/bin/sudo").function("main") {
command = cmdline_args(0,0,"");
if (strpos(command, "edit") >= 0) {
raise(9);
}
}
最終,使用root權(quán)限以下命令安裝腳本:
# nohup stap -g sudoedit-block.stap &
該腳本將使得易受攻擊的sudoedit
二進(jìn)制文件停止工作。 sudo命令仍將照常工作。上述更改在重啟后失效,必須在每次重啟后重新應(yīng)用。
一旦安裝了補(bǔ)丁程序,就可以通過(guò)取消systemtap
進(jìn)程來(lái)刪除systemtap
腳本。 例如,通過(guò)使用:
# kill -s SIGTERM 7590 (其中7590是systemtap進(jìn)程的PID)
相關(guān)鏈接
1. https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txt