Sudo 漏洞 CVE-2025-32463 临时响应:手动编译安装升级

漏洞编号 : CVE-2025-32463
影响组件 : Sudo 1.9.14 至 1.9.17 版本
该漏洞源于 Sudo 对 --chroot (或 -R ) 选项的不当处理。本地攻击者,即便未在 sudoers 文件中授权,也可能通过构造一个恶意的 chroot 环境,欺骗 Sudo 加载任意共享库,从而以 root 权限执行任意代码,实现本地权限提升。

如果像我一样正在使用受影响的版本。但是官方软件仓库暂时还没有发布更新。可以参照此贴从Sudo官网下载最新的1.9.17p1 版本进行编译安装

fedora:/usr/local/share$ sudo dnf info sudo
仓库更新和加载中:
仓库加载完成。
已安装的软件包
Name            : sudo
Epoch           : 0
Version         : 1.9.15
Release         : 7.p5.fc42
Architecture    : x86_64
Installed size  : 4.9 MiB
Source          : sudo-1.9.15-7.p5.fc42.src.rpm
Summary         : Allows restricted root access for specified users
URL             : https://www.sudo.ws
License         : ISC
Description     : Sudo (superuser do) allows a system administrator to give certain
                : users (or groups of users) the ability to run some (or all) commands
                : as root while logging all commands and arguments. Sudo operates on a
                : per-command basis.  It is not a replacement for the shell.  Features
                : include: the ability to restrict what commands a user may run on a
                : per-host basis, copious logging of each command (providing a clear
                : audit trail of who did what), a configurable timeout of the sudo
                : command, and the ability to use the same configuration file (sudoers)
                : on many different machines.
Vendor          : Fedora Project
fedora:/usr/local/share$ sudo yum update sudo
仓库更新和加载中:
仓库加载完成。
Nothing to do.
fedora:/usr/local/share$

下载:

$ wget https://www.sudo.ws/dist/sudo-1.9.17p1.tar.gz
$ tar -zxvf sudo-1.9.17p1.tar.gz
$ cd sudo-1.9.17p1

# 备份 sudoers 配置文件
$ sudo cp /etc/sudoers /etc/sudoers.bak
$ sudo cp -r /etc/sudoers.d /etc/sudoers.d.bak

编译 Sudo 需要 gccmakepam-devel 等开发工具和库。

  • 在 Fedora / RHEL / CentOS 等系统上:

    $ sudo dnf install -y gcc make pam-devel zlib-devel krb5-devel
    
  • *在 Debian / Ubuntu 等系统上:

    $ sudo apt-get update
    $ sudo apt-get install -y build-essential libpam0g-dev zlib1g-dev libkrb5-dev
    
  • 在 Arch Linux 系统上:

     $ sudo pacman -Syu --needed base-devel pam krb5 zlib
    

编译安装:


# 配置编译选项
# --prefix=/usr      : 将程序安装到 /usr 目录,以覆盖系统自带版本
# --sysconfdir=/etc  : 将配置文件(如 sudoers)放在 /etc 目录
# --with-pam         : 启用 PAM 支持

$ ./configure --prefix=/usr --sysconfdir=/etc --with-pam
$ make
$ sudo make install

版本变为1.9.17p1就成功了

$ sudo --version
Sudo 版本 1.9.17p1
Sudoers 策略插件版本 1.9.17p1
Sudoers 文件语法版本 50
Sudoers I/O plugin version 1.9.17p1
Sudoers audit plugin version 1.9.17p1

当官方的软件仓库的版本更新后,你可以重新安装将软件交给包管理器管理。

  • 在 Fedora / RHEL / CentOS 等系统上:
    $ sudo dnf reinstall sudo
    
  • 在 Debian / Ubuntu 等系统上:
    $ sudo apt-get install --reinstall sudo
    
  • 在 Arch Linux 系统上:
    $ sudo pacman -S sudo
    
2 Likes

看了我的几台服务器,都是sudo版本太低的(1.9.13)
:melting_face:

4 Likes

用的旧版本Ubuntu 都是1.9.9的版本的