Qualys的安全研究人员发现了名为“Baron Samedit”(CVE-2021-3156)的 Sudo 权限升级漏洞,该漏洞研究人员于1月13日披露了此漏洞,此漏洞产生的原因是基于任何本地用户(普通用户和系统用户,无论是否在 sudoers 文件中列出)都可以利用基于堆的缓冲区溢出而实现的,攻击者无需知道用户密码即可成功利用此漏洞。


Sudo 错误地在参数中转义了反斜杠字符,从而触发了缓冲溢出,最终导致任何本地用户都可以获得 root 权限。通常,在 shell 中(sudo -s 或 sudo -i)运行命令时,sudo 都会转义特殊的字符。但是,在使用 sudoedit -s 或 sudoedit -i 时实际上又没有进行转义,这使得缓冲区溢出成为了可能。


要测试系统是否易受攻击,必须以非root用户身份登录并运行“ sudoedit -s / ”命令。易受攻击的系统将引发以“ sudoedit:”开头的错误提示,而已修补系统将显示以“ usage:”开头的错误提示。

影响版本包含:

-sudo:sudo: 1.8.2 - 1.8.31p2

-sudo:sudo: 1.9.0 - 1.9.5p1


sudo升级步骤如下:
1.服务器可以连接外网时操作步骤:
操作系统:centos6&7

rpm -Uvh https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo-1.9.5-3.el6.x86_64.rpm
操作系统:ubuntu 18.04
dpkg -i https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo_1.9.5-3_ubu1804_amd64.deb
操作系统:ubuntu 16.04
dpkg -i https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo_1.9.5-3_ubu1604_amd64.deb


2.服务器不能与外网连接时操作步骤:
操作系统:centos6&7
(1)下载rpm安装包,在浏览器上输入:https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo-1.9.5-3.el6.x86_64.rpm
(2)使用winscp把sudo-1.9.5-3.el6.x86_64.rpm安装包上传到服务器上
(3)在服务器上找到sudo-1.9.5-3.el6.x86_64.rpm包后在命令行输入:

rpm -Uvh sudo-1.9.5-3.el6.x86_64.rpm

(4)查看sudo升级后的版本:

sudo -V

操作系统:ubuntu 18.04
(1)下载deb安装包,在浏览器上输入:https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo_1.9.5-3_ubu1804_amd64.deb
(2)使用winscp把sudo_1.9.5-3_ubu1804_amd64.deb安装包上传到服务器上
(3)在服务器上找到sudo_1.9.5-3_ubu1804_amd64.deb包后在命令行输入:

dpkg -i sudo_1.9.5-3_ubu1604_amd64.deb

(4)查看sudo升级后的版本:

sudo -V

操作系统:ubuntu 16.04
(1)下载deb安装包,在浏览器上输入:https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo_1.9.5-3_ubu1604_amd64.deb
(2)使用winscp把sudo_1.9.5-3_ubu1604_amd64.deb安装包上传到服务器上
(3)在服务器上找到sudo_1.9.5-3_ubu1604_amd64.deb包后在命令行输入:

dpkg -i sudo_1.9.5-3_ubu1604_amd64.deb
(4)查看sudo升级后的版本:
sudo -V


成功的升级Sudo version 1.9.5p2版本:

[red@localhost ~]$ sudo -V
Sudo version 1.9.5p2
Sudoers policy plugin version 1.9.5p2
Sudoers file grammar version 48
Sudoers I/O plugin version 1.9.5p2
Sudoers audit plugin version 1.9.5p2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上版本升级完后可以测试一下是否漏洞修复:
注意:测试时需要使用的是非root用户,本次测试的是普通用户red

修复前显示:

[red@localhost ~]$ sudoedit -s /

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for red: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10


修复后显示:

[red@localhost ~]$ sudoedit -s / usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ...

3、使用tar.gz包离线升级

1.下载最新安装包(1.8.28)

wget http://www.sudo.ws/dist/sudo-1.8.28p1.tar.gz

2、解压tar.gz

tar -zxvf sudo-1.8.28p1.tar.gz

3、配置并编译升级sudo的版本

./configure --prefix=/usr --libexecdir=/usr/lib --with-secure-path --with-all-insults --with-env-editor --docdir=/usr/share/doc/sudo-1.8.28.p1 --with-passprmpt="[sudo] password for %p: " && make



4、安装sudo版本并配置库链接

make install && ln -sfv libsudo_util.so.0.0.0 /usr/lib/sudo/libsudo_util.so.0


5、查看升级sudo后的版本

sudo --version
在这里插入图片描述




点赞(0) 打赏

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部