Linux、Unix、MacOS 存在 sudo 漏洞(CVE-2021-3156) 利用复现
2021年1月26日在sudo中发现了严重的基于堆的缓冲区溢出,任何本地用户均可利用此溢出。它的发现者将其命名为 Baron Samedit。即使未在sudoers文件中列出用户,也可以利用该错误将特权提升为root用户。利用该漏洞不需要用户认证。
这是 Sudo 工具中存在十年之久的漏洞,可能会授予任意本地用户对基于 Unix 的系统(包括 macOS Big Sur 和早期版本)进行根访问。
可通过非法操作为任意本地用户授予 root 权限。用户要触发它,只需要重写 argv[0]或者创建一个符号链接。
- 漏洞编号:CVE-2021-3156
- 漏洞级别:高危
- 受影响版本:sudo: 1.8.2 - 1.8.31p2、sudo: 1.9.0 - 1.9.5p1
检测方法
以非root用户登录系统,并运行如下命令:
sudoedit -s /
如果响应一个以 sudoedit: 开头的报错,那么表明存在漏洞。
如果响应一个以 usage: 开头的报错,那么表明补丁已经生效。

漏洞细节
当sudo通过-s或-i命令行选项在shell模式下 运行命令时,它将在命令参数中使用反斜杠转义特殊字符。如果命令在shell模式下运行,那么sudoers策略插件将在评估sudoers策略(不希望使用转义字符)之前从参数中删除转义字符。
如果代码中的错误以未转义的反斜杠字符结尾,那么它将删除转义字符的错误会超出字符串的最后一个字符。在正常情况下,此错误将是无害的,因为sudo避免了命令参数中的所有反斜杠。但是,由于存在另一个错误,这次是在命令行解析代码中,因此可以 使用-s或-i选项运行sudoedit,并设置一个指示启用Shell模式的标志。因为实际上没有运行命令,所以sudo不会 转义特殊字符。最后,决定是否删除转义符的代码并没有检查命令是否正在实际运行,仅检查了设置了shell标志。
漏洞利用与复现
修改配置文件
vim /etc/sudoers
在root ALL=(ALL:ALL) ALL 下面添加一行配置:renfei ALL=(ALL,!root) ALL

注意:需创建renfei用户:useradd renfei,修改密码:passwd renfei ,修改完配置文件保存退出::wq!
renfei 表示名字为renfei的用户
- 第一个ALL 表示用户可以在任意地方使用sudo
- 第二个(ALL,!root) 表示命令可以被除了root以外的任意用户执行
- 最后面的ALL 表示被允许执行
- 整体: renfei用户可以使用sudo,但是除了root以外的任意用户去执行命令
切换到renfei用户,执行 sudo id(查看root的id),发现是无权运行的:

使用如下方法执行我们想要执行的命令
sudo -u# 数字 命令
其中数字范围:-1~4294967295,命令是系统命令
如果以root身份去执行命令,数字使用-1和4294967295

修复方法
更新sudo版本。
商业用途请联系作者获得授权。
版权声明:本文为博主「任霏」原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接及本声明。
相关推荐
猜你还喜欢这些内容,不妨试试阅读一下评论与留言
以下内容均由网友提交发布,版权与真实性无法查证,请自行辨别。微信订阅号
扫码关注「任霏博客」微信订阅号- 你写得非常清晰明了,让我很容易理解你的观点。
- 感谢分享!拿走了~
- 您是说 UCClient 类接收来自Discuz的UCenter的消息吧,请求是来自 Discuz 的 UCenter吗?code 为 null 说明请求URL地址中没有 code 参数 (?code=xxx) ,确定是 UCenter 发起的请求吗?
- String code = request.getParameter("code"); code一直是null 这是为什么啊
- 你好,我想问一下如果是分析型的数据库要怎么制作docker镜像呢 是修改V008R003C002B0320版本号吗
- 可以的,我也正在开发分享的程序,可以邮件或群联系我都可以,关于页面里有联系方式:https://www.renfei.net/page/about 。
- 有破解软件的需要可以私下联系您吗?
- 您好,手机APP只是个客户端,用于数据呈现展示,数据均保存在服务器上,只留个APP没有任何用处,无能为力哦。
- 老哥 看你弄了这么多软件好厉害啊。 我有个软件 我买过几个小会员 没用几天 然后商家跑路了,软件服务器关闭了,连不上去 用不了。 你能做成一个打补丁版本可以本地用的么? 方便看下么?https://haodezhe.lanzouw.com/iD0f30h9joza 谢谢老哥!
- 您好,由于版权投诉和我国知识产权法的完善,我已经下架所有破解软件的下载链接了。
- 生花妙笔信手来 – 基于 Amazon SageMaker 使用 Grounded-SAM 加速电商广告素材生成 [1]
- github.renfei.net 不再完整代理 Github 页面改为代理指定文件
- 优雅的源代码管理(三):本地优雅的使用 Git Rebase 变基
- 优雅的源代码管理(二):Git 的工作原理
- 优雅的源代码管理(一):版本控制系统 VCS(Version Control System)与软件配置管理 SCM(Software Configuration Management)
- ChatGPT 开发商 OpenAI 买下极品域名 AI.com
- 火爆的 AI 人工智能 ChatGPT 国内注册教程、使用方式和收费标准
- 解决 SpringCloud 中 bootstrap.yml 不识别 @activatedProperties@ 参数
- Cron表达式书写教程搞定Linux、Spring、Quartz的定时任务
- 阿里云香港可用区C发生史诗级故障