安全预警
首页  >  网络安全  >  安全预警  >  正文
关于Sudo 堆缓冲区溢出漏洞的预警通报

发布时间:2021-01-27 浏览量:

1、漏洞背景描述

2021 年 1 月 27 日,RedHat 官方发布 sudo 堆缓冲区/溢出漏洞(CVE-2021-3156)通告。

2、漏洞概述

Sudo 是一个功能强大的实用程序,大多数基于 Unix 和 Linux 的操作系统都包含 Sudo。它允许用户使用其他用户的安全特权运行程序。

Sudo 堆缓冲区溢出漏洞可实现本地提权。任何本地用户(包括普通用户和系统用户,sudoer 和非 sudoers)若成功利用该漏洞,可在无需密码的情况下获得 root 权限。

3、漏洞风险

攻击者成功利用该漏洞,可在无需密码的情况下获得root 权限。

4、漏洞影响

Sudo 1.9.0 到 1.9.5p1 所有稳定版(默认配置)

Sudo 1.8.2 到 1.8.31p2 所有旧版本(默认配置)

5、修复建议

(一)下载升级sudo 软件包至 1.9.5p2 或更新版本,下载链接为:https://www.sudo.ws/dist/ 。

(二)对于无法立即更新的用户,建议使用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)创建以下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)

参考链接:

https://www.qualys.com/2021/01/26/cve-2021-3156/baron-samedit-heap-based-overflow-sudo.txt

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