Linux sudo权限提升漏洞(CVE-2021-3156)通告


1#漏洞简介
1月26日,Sudo发布安全通告,修复了一个类Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞。
当sudo通过 -s 或 -i 命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用 -s 或 -i 标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。只要存在sudoers文件(通常是 /etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。目前漏洞细节已公开,请受影响的用户尽快采取措施进行防护。
2#漏洞详细信息
检测方式(如下图):

用户使用非root权限的账户登录系统后,运行“ sudoedit -s / ”命令,若返回如图以“ sudoedit:”开头的错误,则当前系统可能存在安全风险。
而不受影响的系统,执行后将显示以“ usage:”开头的错误响应。
3#影响范围
  3.1#所受影响产品
  •  Sudo 1.8.2 – 1.8.31p2
  •  Sudo 1.9.0 – 1.9.5p1
  3.2#不受影响产品
  •  Sudo =>1.9.5p2
4#漏洞修复
   4.1官方修复方式
     目前官方已在sudo新版本1.9.5p2中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:https://www.sudo.ws/download.html
      (注:建议用户在升级前做好数据备份工作,避免出现意外)
   4.2临时防护措施
     如果相关用户若暂时无法进行更新,可使用systemtap进行以下临时缓解:
     第一步,安装所需的systemtap软件包和依赖项:
systemtap yum-utils kernel-devel-“$(uname -r)”
       RHEL 7:使用命令安装 kernel debuginfo:debuginfo-install -y kernel-“$(uname -r)”。
       RHEL 8:使用命令安装 sudo debuginfo:debuginfo-install sudo。

      第二步,创建以下systemtap脚本(将文件命名为sudoedit-block.stap):
probe   process(“/usr/bin/sudo”).function(“main”) {

        command =   cmdline_args(0,0,””);

        if (strpos(command,   “edit”) >= 0) {

                raise(9);

        }

}
     第三步,使用以下命令安装脚本(应使用root权限)

# nohup stap -g sudoedit-block.stap &
     该脚本将使得易受攻击的sudoedit二进制文件停止工作。sudo命令仍将照常执行。
     注:上述更改在重启后失效,必须在每次重启后重新应用。

    第四步,一旦安装了补丁程序,就可以通过取消systemtap进程来删除systemtap脚本。
     例如,通过使用以下命令(其中7590是systemtap进程的PID):
# kill -s SIGTERM 7590
注明:本文后面修复漏洞步骤来自绿盟科技威胁对抗能力部,原文:绿盟科技微信公众号
本博客所有文章如无特别注明均为原创。作者:渊龙Sec团队复制或转载请以超链接形式注明转自 渊龙Sec安全团队博客
原文地址《Linux sudo权限提升漏洞(CVE-2021-3156)通告
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)