• 我的位置:
  • 首页
  • -
  • 漏洞预警
  • -
  • 其他
  • -
  • Sudo权限提升漏洞
    • CNNVD编号:未知
    • 危害等级: 高危 
    • CVE编号:CVE-2021-3156
    • 漏洞类型: 权限提升
    • 威胁类型:未知
    • 厂       商:未知
    • 漏洞来源:深信服
    • 发布时间:2021-01-28
    • 更新时间:2021-01-28

    漏洞简介

    1、组件介绍

    Sudo是linux及其他类unix系统下的常用指令,用于允许普通用户执行部分root命令的工具,提高权限控制安全性。

    2、漏洞描述

    近日,深信服安全团队监测到一则Sudo组件存在全线提升漏洞的信息,漏洞编号:CVE-2021-3156,漏洞危害:高危。该漏洞是由于Sudo程序在set_cmnd()函数存在堆溢出,攻击者可利用该漏洞在获得低权限的情况下,构造恶意数据进行提权,获取服务器最高权限。

    3、漏洞分析

    Sudo在命令行中工作时,执行在shell -c模式下,如果有-s命令行参数,则设置MODE_SHELL标志。

    该模式下的parse_args函数对输入进行了语法检查,其中对含有\的命令的转义。此后这些命令在set_cnmd将命令行参数链接到缓冲区user_args,用于按照语法解析后的含义执行,但是在命令以单个\结尾时,会导致循环判定条件始终为非终止符,从而读取输入信息至内存越界。

    set_cnmd中的代码和parse_args中的代码被不同的条件限定,所以这种情况由于前置判定条件,仅能在同时设置MODE_EDIT和MODE_SHELL时存在,一般情况下因为设置MODE_EDIT会导致重置valid_flags,删除MODE_SHELL从而无法触发该漏洞。


    但是当执行的身份是sudoedit而不是sudo时,会自动设置MODE_EDIT但不重置valid_flags.(同时设置MODE_CHECK和MODE_SHELL也可绕过判定,但是因为同样会导致重置,无法实现)这时会避免转义代码,到达易受攻击的代码。



    漏洞公示

    在使用受影响版本Sudo的Ubuntu设备复现该漏洞,效果如下:

    参考网站

    暂无

    受影响实体

    Sudo是绝大多数类Unix系统默认的用户权限切换程序,使用量极大。且此漏洞自1.8.2版本引入起,已经有近十年时间,全球有数千万操作系统使用了受影响版本的Sudo。此漏洞涉及用户量过多,导致漏洞影响较大。


    目前受影响的Sudo版本:

    Sudo 1.8.2 - 1.8.32p2

    Sudo 1.9.0 - 1.9.5p1

    补丁

    1、自检方案

    使用命令

    sudo -V

    如出现的版本号位于受影响的区间内,则漏洞存在;

    使用命令

    sudoedit -s /

    如出现sudoedit开头的报错,则漏洞存在,出现usage开头的报错则不受影响。

    2、官方修复建议

    当前官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。链接如下:

    https://www.sudo.ws/dist/

    可以使用以下命令进行升级:

    wget http://www.sudo.ws/dist/sudo-1.9.5p2.tar.gz

    tar -zxf sudo-1.9.5p2.tar.gz

    cd sudo-1.9.5p2

    ./configure

    make

    sudo make install

    最后执行sudo -V确认版本是未受影响的版本即可。