【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告

admin 2021年1月28日19:11:57评论50 views字数 2208阅读7分21秒阅读模式
【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告

奇安信CERT

致力于第一时间为企业级用户提供安全风险通告有效解决方案。




风险通告



近日,奇安信CERT监测到RedHat发布了sudo堆缓冲区溢出的风险通告,漏洞编号为CVE-2021-3156。在大多数基于Unix和Linux的操作系统中都包含sudo,目前已有利用该漏洞将nobody权限提升到root权限的视频。鉴于漏洞危害较大,建议客户尽快安装补丁更新。



当前漏洞状态



细节是否公开

PoC状态

EXP状态

在野利用

已公开

未知

未知




漏洞描述

近日,奇安信CERT监测到RedHat发布了sudo堆缓冲区溢出的风险通告,漏洞编号为CVE-2021-3156。sudo允许用户使用其他用户的权限运行程序,在大多数基于Unix和Linux的操作系统中都包含sudo,目前已有利用该漏洞将nobody权限提升到root权限的视频。

Linux的sudo命令存在堆缓冲区溢出漏洞,通过该漏洞,成功利用漏洞的任何本地用户可在无需root密码的情况下将本身权限提升为root权限,即攻击者在拥有低权限账号情况下可以提升权限到root权限执行命令。

网传视频展示了该漏洞的提权EXP,目前奇安信CERT监测到的PoC只能导致拒绝服务,无法完成整个提权利用。



风险等级

奇安信 CERT风险评级为:高危
风险等级:蓝色(一般事件)



影响范围

旧版本sudo 1.8.2<=1.8.31p2

稳定版sudo 1.9.0<=1.9.5p1



处置建议

检测方法:在非root用户登录情况下输入命令:sudoedit –s /,如果回显错误以“sudoedit:”开头则表明该sudo版本有漏洞,如果对系统打入补丁后该错误回显将以“usage”开头。

通用修复建议:在sudo官方下载链接https://www.sudo.ws/download.html下载将sudo升级到sudo 1.9.5p2或更高版本。


对于基于debain的发行版:将sudo升级到安全版本1.8.27-1+deb10u3


对于基于Ubuntu Releases:

Ubuntu 20.10在https://launchpad.net/ubuntu/ +source/sudo/1.9.1-1ubuntu1.1 下载sudo1.9.1补丁包。

Ubuntu 20.04 LTS: 在https://launchpad.net/ubuntu/+source/sudo/1.8.31-1ubuntu1.2 下载sudo1.8.31补丁包。

Ubuntu 18.04 LTS在https://launchpad.net/ubuntu/+source/sudo/ 1.8.21p2- 3ubuntu1.4 下载sudo1.8.21p2补丁包。

Ubuntu 16.04 LTS在https://launchpad.net/ubuntu/+source/sudo/1.8.16-0ubuntu1.10 下载sudo1.8.16补丁包。



技术分析

执行sudo以在shell模式下运行命令,可以通过-s选项设置sudo的MODE_SEHLL标志位或者通过-i选项设置sudo的MODE_SEHLL和MODE_LOGIN_SHELL标志位。当设置了MODE_RUN和MODE_SHELL标志位时,parse_args函数将获取所有命令行参数并使用反斜杠转义反斜杠。


在sudoers_policy_main()中,set_cmnd()将命令行参数复制到堆缓冲区user_args其中缓冲区大小为命令行参数大小,如果有命令行以单个反斜杠结尾将会通过while循环读取超过命令行参数范围的字符到user_args中,但是理论上命令行参数不会以反斜杠结尾。达到漏洞代码(set_cmnd)的必要条件是设置MODE_SHELL和MODE_LOGIN_SHELL标志位,而parse_args的判断条件是设置MODE_RUN和MODE_SHELL标志位,其中MODE_RUN是默认的标志位。


如果以sudoedit执行sudo即sudoedit -s则会自动设置MODE_EDIT和MODE_SHELL,但不会设置MODE_RUN标志位,则可以避免parse_args转义反斜杠,从而进入漏洞代码并且通过while循环将数据复制到user_args中,从而溢出堆缓冲区。


演示视频如下:



产品解决方案

奇安信开源卫士已更新

奇安信开源卫士20210127. 575版本已支持对Linux sudo堆缓冲区溢出漏洞(CVE-2021-3156)的检测


奇安信网神云锁产品解决方案

奇安信网神云锁产品(私有云版/公有云版)可通过更新EDR规则支持对Linux sudo堆缓冲区溢出漏洞CVE-2021-3156的检测,请用户联系技术支持人员获取规则更新包。



参考资料

[1] https://blog.qualys.com/vulnerabilities-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit



时间线

2020年1月28日,奇安信 CERT发布安全风险通告 


【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告点击阅读原文 
到奇安信NOX-安全监测平台查询更多漏洞详情





【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告

奇安信CERT长期招募安全研究员

↓ ↓ ↓ 向下滑动图片了解更多↓ ↓ ↓



本文始发于微信公众号(奇安信 CERT):【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年1月28日19:11:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【安全风险通告】Linux sudo堆溢出本地提权漏洞安全风险通告http://cn-sec.com/archives/256544.html

发表评论

匿名网友 填写信息