风险通告
近日,奇安信CERT监测到RedHat发布了sudo堆缓冲区溢出的风险通告,漏洞编号为CVE-2021-3156。在大多数基于Unix和Linux的操作系统中都包含sudo,目前网络上已有利用该漏洞将普通用户权限提升到root权限的EXP。该漏洞的威胁提升,攻击者有可能通过此漏洞配合其他漏洞获取受害主机的root权限。鉴于漏洞危害较大,建议客户尽快安装补丁更新。
当前漏洞状态
细节是否公开 |
PoC状态 |
EXP状态 |
在野利用 |
是 |
已公开 |
已公开 |
未知 |
Linux的sudo命令存在堆缓冲区溢出漏洞,通过该漏洞,成功利用漏洞的任何本地用户可在无需root密码的情况下将本身权限提升为root权限,即攻击者在拥有低权限账号情况下可以提升权限到root权限执行命令。
奇安信CERT监测到目前网络上已有将普通用户权限提升至root权限并反弹shell的EXP,奇安信CERT第一时间复现,截图如下。
旧版本sudo 1.8.2<=1.8.31p2
稳定版sudo 1.9.0<=1.9.5p1
通用修复建议:在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的检测,请用户联系技术支持人员获取规则更新包。
2021年1月28日,奇安信 CERT发布安全风险通告
2021年1月31日,奇安信CERT发布安全风险通告二次更新
本文始发于微信公众号(奇安信 CERT):【通告更新】EXP已发现,请立即更新,Linux sudo堆缓冲区溢出本地提权漏洞安全风险通告第二次更新
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论