![]()
0x00背景介绍
1月27日,天融信阿尔法实验室监测到RedHat发布了sudo 堆缓冲区溢出漏洞的风险通告,攻击者在取得服务器基础权限的情况下,可以利用sudo缓冲区溢出漏洞,导致本地权限提升。
0x01漏洞描述
sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含了sudo,它允许普通用户执行root权限命令。
在sudo解析命令行参数时存在堆缓冲区溢出漏洞,任何本地用户都可以利用此漏洞而无需进行身份验证,成功利用此漏洞可能导致特权升级。
测试系统是否受此漏洞影响:
1. 以非root用户身份登录系统。
2. 运行命令“sudoedit -s /”
3. 如果出现以“ sudoedit:”开头的错误响应,则系统受到此漏洞影响;如果出现以“ usage:”开头的错误响应,则表示该漏洞已被补丁修复。
0x02漏洞编号
CVE-2021-3156
0x03漏洞等级
高危
0x04受影响版本
sudo: 1.8.2 - 1.8.31p2
sudo: 1.9.0 - 1.9.5p
0x05修复建议
受影响用户建议尽快升级sudo至最新版本,链接如下:
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):
probeprocess("/usr/bin/sudo").function("main") {
command = cmdline_args(0,0,"");
if (strpos(command, "edit") >= 0) {
raise(9);
}
}
3. 使用以下命令安装脚本:(使用root权限)
# nohup stap -gsudoedit-block.stap &
4.一旦安装了新的固定软件包,就可以通过终止systemtap进程来删除systemtap脚本。例如,使用以下命令(其中7590是systemtap进程的PID):
#kill -s SIGTERM 7590
0x06支持热线
天融信公司后续将积极为用户提供技术支持,进行持续跟踪并及时通报进展,如有需要请拨打7 x 24小时客服联系电话:400-777-0777。
0x07声明
天融信阿尔法实验室拥有对此公告的修改和解释权,如欲转载,必须保证此公告的完整性。由于传播、利用此公告而造成的任何后果,均由使用者本人负责,天融信阿尔法实验室不为此承担任何责任。
天融信阿尔法实验室成立于2011年,一直以来,阿尔法实验室秉承“攻防一体”的理念,汇聚众多专业技术研究人员,从事攻防技术研究,在安全领域前瞻性技术研究方向上不断前行。作为天融信的安全产品和服务支撑团队,阿尔法实验室精湛的专业技术水平、丰富的排异经验,为天融信产品的研发和升级、承担国家重大安全项目和客户服务提供强有力的技术支撑。