vlambda博客
学习文章列表

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复


一、漏洞简介

1.1 【风险名称】

Sudo 堆缓冲区溢出致本地提权漏洞(CVE-2021-3156)

1.2 【风险等级】

1.3 【风险概述】

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

1.4 【风险验证】

1.4.1 检测方法

以非root账户登录系统运行如下命令:sudoedit -s /

受影响的系统启动程序会提示以下开头的错误作为响应:

sudoedit:

安装补丁后启动会提示以下开头的错误作为响应:

usage:

1.4.2 影响范围

sudo文件里没加普通用户进去,你的普通用户执行sudo直接就拒。因为不在sudo文件中添加用户. 此刻是 否升级请自辩!(cat /etc/sudoers)

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

1)CentOS 7:升级到 sudo-1.8.23-10.el7_9.1 或更高版本 ;
2) CentOS 8:升级到 sudo-1.8.29-6.el8_3.1或更高版本。

1.5 参考连接

  • 也可以参照链接里面的步骤进行处理

 https://access.redhat.com/security/vulnerabilities/RHSB-2021-002

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

二、漏洞修复
This browser does not support music or audio playback. Please play it in Weixin or another browser. centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

2.1 【修复前效果与版本】

[ops@demo ~]$ sudoedit -s 

/sudoedit: /: not a regular file

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复


centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复


2.2 【修复rpm-包升级】

2.3 rpm软件包获取

官网:https://www.sudo.ws/download.html

wget https://github.com/sudo-project/sudo/releases/download/SUDO_1_9_5p2/sudo-1.9.5-3


centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复

2.4 rpm软件包上传与执行

[root@Centos7 ~]# sudo -V

Sudo 版本 1.9.5p2

当前选项:--prefix=/usr --with-logging=syslog --with-logfac=authpriv --with-pam --enable-zlib=system --with-editor=/bin/vi --with-env-editor --with

-ignore-dot --with-tty-tickets --with-ldap --with-passprompt=[sudo] password for %p:  --with-sendmail=/usr/sbin/sendmail --enable-warnings --enable-package-build --with-selinux --with-linux-audit --with-pam-login --with-sssd --with-sssd-lib=/usr/lib64 --with-ldap-conf-file=/etc/sudo-ldap.conf --enable-openssl --enable-python --disable-tmpfiles.dSudoers 策略插件版本 1.9.5p2

Sudoers 文件语法版本 48


Sudoers 路径:/etc/sudoers

nsswitch 路径:/etc/nsswitch.conf

ldap.conf 路径:/etc/sudo-ldap.conf

ldap.secret 路径:/etc/ldap.secret

认证方法:'pam'

若使用了 syslog,用于记录日志的 syslog 设施:authpriv

用户认证成功时使用的 syslog 优先级:notice

用户认证不成功时使用的 syslog 优先级:alert

忽略 $PATH 中的“.”

在用户不在 sudoers 列表中时发送邮件

在用户第一次运行 sudo 时向他致辞

默认要求用户认证

root 可以运行 sudo

允许收集一些信息,以提供有用的错误消息

Visudo 将优先考虑 EDITOR 环境变量

设置 LOGNAME 和 USER 环境变量

日志文件折行的长度(0 则不折行):80

认证时间戳延时:5.0 分钟

密码提示延时:5.0 分钟

输入密码的尝试次数:3

要使用的 umask,或 0777 使用用户的:022

邮件程序路径:/usr/sbin/sendmail

邮件程序标志:-t

邮件消息的主题行:*** SECURITY information for %h ***

密码错误消息:对不起,请重试。

致辞(lecture)状态文件夹的路径:/var/db/sudo/lectured

认证时间戳文件夹的路径:/run/sudo/ts

默认密码提示:[sudo] %p 的密码:

运行命令的默认用户:root

visudo 所使用的编辑器的路径:/bin/vi

何时为“list”伪命令请求密码:any

何时为“verify”伪命令请求密码:all

>= 3 的文件描述符将会在执行命令前关闭

将环境重设为默认的变量集

要检查安全性的环境变量:

TZ

TERM

LINGUAS

LC_*

LANGUAGE

LANG

COLORTERM

要移除的环境变量:

*=()*

RUBYOPT

RUBYLIB

PYTHONUSERBASE

PYTHONINSPECT

PYTHONPATH

PYTHONHOME

TMPPREFIX

ZDOTDIR

READNULLCMD

NULLCMD

FPATH

PERL5DB

PERL5OPT

PERL5LIB

PERLLIB

PERLIO_DEBUG

JAVA_TOOL_OPTIONS

SHELLOPTS

BASHOPTS

GLOBIGNORE

PS4

BASH_ENV

ENV

TERMCAP

TERMPATH

TERMINFO_DIRS

TERMINFO

_RLD*

LD_*

PATH_LOCALE

NLSPATH

HOSTALIASES

RES_OPTIONS

LOCALDOMAIN

CDPATH

IFS

要保留的环境变量:

KDEDIR

QTDIR

_XKB_CHARSET

LC_*

LINGUAS

LANGUAGE

LANG

XAUTHORIZATION

XAUTHORITY

PS2

PS1

PATH

LS_COLORS

KRB5CCNAME

HOSTNAME

DISPLAY

COLORS

解析 sudoers 时使用的区域设置:C

使用 zlib 压缩 I/O 日志

用于保存输入/输出日志的目录:/var/log/sudo-io

用于保存输入/输出日志的文件:%{seq}

在分配伪终端时向 utmp/utmpx 文件中添加一条记录

要使用的 PAM 服务名称:sudo

用于登录 shell 的 PAM 服务名称:sudo-i

尝试为目标用户建立 PAM 凭据

创建一个新的 PAM 会话来运行该命令

执行 PAM 账户验证管理

启用 support netgroup 支持

在使用 sudoedit 编辑文件时检查上级目录是否可写

即使 sudo 无法写入审核日志也允许命令运行

即使 sudo 无法写入日志文件也允许命令允许

大于此数值的日志条目会分为多条 syslog 消息:960

I/O 日志文件要使用的文件模式:0600

根据文件描述符执行命令,而非根据路径:digest_only

认证时间戳记录的类型:tty

在匹配 用户 名时忽略大小写

在匹配 组 名时忽略大小写

命令被 sudoers 允许时的日志

命令被 sudoers 拒绝时的日志

Sudo 日志服务器超时秒数:30

Enable SO_KEEPALIVE socket option on the socket connected to the logserver

验证日志服务器证书有效性

Set the pam remote user to the user running sudo

要产生日志的格式:sudo

Enable SELinux RBAC support


192.168.131.131/255.255.255.0

192.168.122.1/255.255.255.0

fe80::87de:4db5:146f:a0a0/ffff:ffff:ffff:ffff::


Sudoers I/O plugin version 1.9.5p2

Sudoers audit plugin version 1.9.5p2


或者使用阿里云镜像源,执行修复命令yum update sudo

查看版本sudo -V


【往期经典回顾





【心语】
       要努力做一个可爱的人。不埋怨谁,不嘲笑谁,也不羡慕谁,阳光下灿烂,风雨中奔跑,做自己的梦,走自己的路!