0x01漏洞简述
2021年01月27日,360CERT监测发现RedHat
发布了sudo 缓冲区/栈溢出漏洞
的风险通告,该漏洞编号为CVE-2021-3156
,漏洞等级:高危
,漏洞评分:7.0
。
攻击者在取得服务器基础权限的情况下,可以利用sudo
基于堆的缓冲区溢出漏洞,获得root
权限。
目前debain已经修复该漏洞,centos依然受到影响
对此,360CERT建议广大用户及时将sudo
升级到最新版本。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。
0x02风险等级
360CERT对该漏洞的评定结果如下
评定方式 | 等级 |
---|---|
威胁等级 | 高危 |
影响面 | 广泛 |
360CERT评分 | 7.0 |
0x03漏洞详情
CVE-2021-3156: 缓冲区溢出漏洞
在sudo
解析命令行参数的方式中发现了基于堆的缓冲区溢出。任何本地用户(普通用户和系统用户,sudoer
和非sudoers
)都可以利用此漏洞,而无需进行身份验证,攻击者不需要知道用户的密码。成功利用此漏洞可以获得root
权限。
用户可以使用如下方法进行自查:
以非root用户登录系统,并使用命令sudoedit -s /
– 如果响应一个以sudoedit:
开头的报错,那么表明存在漏洞。
– 如果响应一个以usage:
开头的报错,那么表明补丁已经生效。
0x04影响版本
– sudo:sudo
: 1.8.2 – 1.8.31p2
– sudo:sudo
: 1.9.0 – 1.9.5p1
0x05修复建议
通用修补建议
下载升级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. 创建以下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)
0x06时间线
2021-01-27 RedHat官方发布通告
2021-01-27 360CERT发布通告
0x07参考链接
2、 CVE-2021-3156: Heap-Based Buffer Overflow in Sudo (Baron Samedit)
0x08特制报告下载链接
一直以来,360CERT对全球重要网络安全事件进行快速通报、应急响应。为更好地为政企用户提供最新漏洞以及信息安全事件的安全通告服务,现360CERT正式推出安全通告特制版报告,以便用户做资料留存、传阅研究与查询验证。 用户可直接通过以下链接进行特制报告的下载。
若有订阅意向与定制需求请发送邮件至 g-cert-report#360.cn ,并附上您的 公司名、姓名、手机号、地区、邮箱地址。