【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新

  • A+
所属分类:安全新闻
【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新

奇安信CERT

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




风险通告



近日,奇安信CERT监测到RedHat发布了sudo堆缓冲区溢出的风险通告,漏洞编号为CVE-2021-3156。在大多数基于Unix和Linux的操作系统中都包含sudo,目前网络上已有利用该漏洞将普通用户权限提升到root权限的EXP。该漏洞的威胁提升,攻击者有可能通过此漏洞配合其他漏洞获取受害主机的root权限。鉴于漏洞危害较大,建议客户尽快安装补丁更新。


此次更新新增内容:
此漏洞的exp已被公开,漏洞危害变大。




当前漏洞状态



细节是否公开

PoC状态

EXP状态

在野利用

已公开

已公开

未知




漏洞描述

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

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


奇安信CERT监测到目前网络上已有将普通用户权限提升至root权限并反弹shell的EXP,奇安信CERT第一时间复现,截图如下。

【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新

【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新




风险等级


奇安信 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



时间线

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

2021年1月31日,奇安信CERT发布安全风险通告二次更新


【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新点击阅读原文 
到奇安信NOX-安全监测平台查询更多漏洞详情





【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新

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

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



本文始发于微信公众号(奇安信 CERT):【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: