CentOS7 Sudo本地提权漏洞修复实践

简介: CentOS7 Sudo本地提权漏洞修复实践

CentOS7 Sudo本地提权漏洞修复

640.jpg

Sudo本地提权漏洞漏洞概述


最近国外研究团队披露出sudo堆溢出漏洞,漏洞编号:CVE-2021-3156,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。


  • 漏洞详情

Sudo是一个功能强大的实用程序,大多数基于Unix和Linux的操作系统都包含Sudo。它允许用户使用其他用户的安全特权运行程序。

该漏洞已经隐藏了将近十年。它于2011年7月引入(commit:8255ed69),从1.8.2到1.8.31p2的所有旧版本以及从1.9.0到1.9.5p1的所有稳定版本的默认配置均受影响。

成功利用此漏洞,普通用户都可以在易受攻击的主机上获得 root 特权

2021年1月26日,Sudo发布安全通告,修复了一个类Unix操作系统在命令参数中转义反斜杠时存在基于堆的缓冲区溢出漏洞。

当sudo通过-s或-i命令行选项在shell模式下运行命令时,它将在命令参数中使用反斜杠转义特殊字符。但使用-s或 -i标志运行sudoedit时,实际上并未进行转义,从而可能导致缓冲区溢出。


只要存在sudoers文件(通常是/etc/sudoers),攻击者就可以使用本地普通用户利用sudo获得系统root权限。


  • 风险等级:高风险
  • 漏洞风险: 攻击者可利用该漏洞提升权限且poc已公开
  • 影响版本

Sudo 1.9.0 到 1.9.5p1 所有稳定版(默认配置)

Sudo 1.8.2 到 1.8.31p2 所有旧版本(默认配置)

  • 安全版本:Sudo 1.9.5p2或更新版本


漏洞检测方法


1、以非root账户登录系统运行如下命令:

sudoedit -s /


若返回如图以“ sudoedit:”开头的错误,则当前系统可能存在安全风险。

不受影响的系统将显示以“ usage:”开头的错误响应。

640.jpg

1)若受影响,错误信息会出现如下提示


sudoedit: /: not a regular file


2)若已安装修复补丁,错误信息则是


usage: sudoedit [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p

               prompt] [-T timeout] [-u user] file ...


修复建议


目前Redhat等Linux厂商已经紧急发布修复补丁,涉及各个版本系统,建议尽快升级相关补丁。CentOS 系统用户:


1)CentOS 6:默认 sudo 在受影响范围,CentOS官方已停止更新。

2)CentOS 7:升级到 sudo-1.8.23-10.el7_9.1 或更高版本

木有也有不升级的处理方法,但太麻烦,建议直接升级sudo解决

640.jpg

CentOS7修复该漏洞的步骤实践


1、yum在线升级sudo


yum makecache fast
yum search sudo
yum install sudo

640.jpg640.jpg

可以在yum源站点update仓库里看到1/26号刚更新了这个sudo版本

640.png


2、验证sudo版本及再次进行检测 这时其它sudo用户再使用


sudo -V
sudoedit -s /

640.jpg

可以看到显示的是usage:开头的内容,说明漏洞已经修复


3、使用如下命令可以看到sudo的rpm包的更新记录说明 可以看到已经修复了该CVE-2021-3156漏洞


rpm -q --changelog sudo | head

640.jpg

相关文章
|
Linux Docker 容器
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
|
存储 Unix Linux
CentOS7下日志轮转logrotate简单入门与实践
CentOS7下日志轮转logrotate简单入门与实践
467 0
CentOS7下日志轮转logrotate简单入门与实践
|
Kubernetes Linux Shell
CentOS7下快速搭建K8s集群实践
CentOS7下快速搭建K8s集群实践
681 1
CentOS7下快速搭建K8s集群实践
|
开发框架 缓存 .NET
ASP.NET Core在CentOS上的最小化部署实践
本文从Linux小白的视角, 在CentOS服务器上搭建一个Nginx-Powered AspNet Core Web准生产应用。在开始之前,我们还是重温一下部署原理,正如你所常见的.Net Core 部署图
ASP.NET Core在CentOS上的最小化部署实践
|
15天前
|
存储 监控 Linux
如何在 CentOS 7 中进行磁盘分区和挂载,包括准备工作、创建分区、格式化分区、创建挂载点、挂载分区及实践经验分享
随着业务扩展和技术进步,服务器硬盘容量需求不断增加。本文通过具体案例介绍如何在 CentOS 7 中进行磁盘分区和挂载,包括准备工作、创建分区、格式化分区、创建挂载点、挂载分区及实践经验分享,帮助读者更好地管理和利用磁盘空间。
56 3
|
1月前
|
Oracle 关系型数据库 MySQL
CentOS7安装MariaDB成功的实践
CentOS7安装MariaDB成功的实践
49 0
|
Linux Shell
Centos显示-bash-4.1$问题的修复及原因探究
Centos显示-bash-4.1$问题的修复及原因探究
159 0
|
Kubernetes 网络协议 Linux
CentOS7下打通调试PC到K8s Pod之间网络的实践过程
CentOS7下打通调试PC到K8s Pod之间网络的实践过程
307 0
CentOS7下打通调试PC到K8s Pod之间网络的实践过程
|
监控 关系型数据库 Linux
CentOS7下Zabbix5.0+PostgreSQL12+TimescaleDB部署实践
CentOS7下Zabbix5.0+PostgreSQL12+TimescaleDB部署实践
672 0
CentOS7下Zabbix5.0+PostgreSQL12+TimescaleDB部署实践
|
监控 安全 Linux
CentOS7下简单配置SNMPv3实践
CentOS7下简单配置SNMPv3实践
560 0
CentOS7下简单配置SNMPv3实践