centos 7 sudo堆溢出漏洞(CVE-2021-3156)修复
1.1 【风险名称】
1.2 【风险等级】
1.3 【风险概述】
1.4 【风险验证】
1.4.1 检测方法
以非root账户登录系统运行如下命令:sudoedit -s /
受影响的系统启动程序会提示以下开头的错误作为响应:
sudoedit:
安装补丁后启动会提示以下开头的错误作为响应:
usage:
1.4.2 影响范围
1.5 参考连接
-
也可以参照链接里面的步骤进行处理
https://access.redhat.com/security/vulnerabilities/RHSB-2021-002
2.1 【修复前效果与版本】
[ops@demo ~]$ sudoedit -s
/sudoedit: /: not a regular file
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
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