了解金山云最新公告
2021-01-27 00:00:00
1月27日,金山云安全應急響應中心監(jiān)測到國外安全研究人員披露了一個sudo 堆緩沖區(qū)溢出致本地提權的漏洞,漏洞編號為CVE-2021-3156。
該漏洞幾乎影響所有Linux發(fā)行版,建議使用了sudo的用戶及時升級到最新版本或采取相關措施,避免被黑客攻擊造成損失。
風險等級
高危
漏洞描述
Sudo是一個功能強大的實用程序,大多數(shù)基于Unix和Linux的操作系統(tǒng)都包含sudo。
在sudo解析命令行參數(shù)的方式中發(fā)現(xiàn)了基于堆的緩沖區(qū)溢出。任何本地用戶(包括普通用戶和系統(tǒng)用戶,sudoer和非sudoers)都可以利用此漏洞,無需進行身份驗證,也不需要知道用戶的密碼,成功利用此漏洞可以獲得root權限。
影響版本
Sudo1.9.0到 1.9.5p1 所有穩(wěn)定版(默認配置)
Sudo1.8.2到 1.8.31p2所有版本
檢測方法
以非root用戶登錄系統(tǒng),并使用命令sudoedit -s /
- 如果響應一個以sudoedit:開頭的報錯,那么表明存在漏洞。
- 如果響應一個以usage:開頭的報錯,那么表明補丁已經生效。
修復建議
通用方案:
升級到1.9.5p2 或更新版本,sudo軟件包下載地址:
暫緩方案:
對于無法立即更新的用戶,建議使用systemtap進行以下臨時緩解:
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. 創(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);
}
}
3. 使用以下命令安裝腳本:(使用root權限)
# nohup stap -g sudoedit-block.stap &
該腳本將使得易受攻擊的sudoedit二進制文件停止工作。sudo命令仍將照常工作。上述更改在重啟后失效,必須在每次重啟后重新應用。
4. 一旦安裝了補丁程序,就可以通過取消systemtap進程來刪除systemtap腳本。例如,通過使用:
# kill -s SIGTERM 7590 (其中7590是systemtap進程的PID)
參考鏈接
[1]https://access.redhat.com/security/cve/CVE-2021-3156
北京金山云網絡技術有限公司
2021/01/27