CentOS7 Sudo本地提权漏洞修复实践
更多技术干货,第一时间送达
CentOS7 Sudo本地提权漏洞修复
Sudo本地提权漏洞漏洞概述
最近国外研究团队披露出sudo堆溢出漏洞,漏洞编号:CVE-2021-3156,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。
-
漏洞详情
Sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的安全特权运行程序。
该漏洞已经隐藏了将近十年。它于2011年7月引入(commit:8255ed69),从1.8.2到1.8.31p2的所有旧版本以及从1.9.0到1.9.5p1的所有稳定版本的默认配置均受影响。
成功利用此漏洞,普通用户都可以在易受攻击的主机上获得 root 特权
2021年1月26日,Sudo发布安全通告,修复了一个类Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞。
当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。
只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。
-
风险等级:高风险
-
漏洞风险: 攻击者可利用该漏洞提升权限且poc已公开
-
影响版本
Sudo 1.9.0 到 1.9.5p1 所有稳定版(默认配置)
Sudo 1.8.2 到 1.8.31p2 所有旧版本(默认配置)
-
安全版本:Sudo 1.9.5p2或更新版本
漏洞检测方法
1、以非root账户登录系统运行如下命令:
sudoedit -s /
若返回如图以“ sudoedit:”开头的错误,则当前系统可能存在安全风险。
不受影响的系统将显示以“ usage:”开头的错误响应。
(图片可放大查看)
1)若受影响,错误信息会出现如下提示
sudoedit: /: not a regular file
2)若已安装修复补丁,错误信息则是
usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p
prompt] [-T timeout] [-u user] file ...
修复建议
目前Redhat等Linux厂商已经紧急发布修复补丁,涉及各个版本系统,建议尽快升级相关补丁。CentOS 系统用户:
1)CentOS 6:默认 sudo 在受影响范围,CentOS官方已停止更新。
2)CentOS 7:升级到 sudo-1.8.23-10.el7_9.1 或更高版本
木有也有不升级的处理方法,但太麻烦,建议直接升级sudo解决
(图片可放大查看)
CentOS7修复该漏洞的步骤实践
1、yum在线升级sudo
yum makecache fast
yum search sudo
yum install sudo
(图片可放大查看)
(图片可放大查看)
可以在yum源站点update仓库里看到1/26号刚更新了这个sudo版本
(图片可放大查看)
2、验证sudo版本及再次进行检测 这时其它sudo用户再使用
sudo -V
sudoedit -s /
(图片可放大查看)
可以看到显示的是usage:开头的内容,说明漏洞已经修复
3、使用如下命令可以看到sudo的rpm包的更新记录说明 可以看到已经修复了该CVE-2021-3156漏洞
rpm -q --changelog sudo | head
(图片可放大查看)
漏洞细节可以参考如下链接:
https://www.sudo.ws/alerts/unescape_overflow.html
https://access.redhat.com/security/vulnerabilities/RHSB-2021-002