Linux sudo host权限提升漏洞(CVE-2025-32462)复现与原理分析

免责声明

本文所述漏洞复现方法仅供安全研究及授权测试使用;

任何个人/组织须在合法合规前提下实施,严禁用于非法目的;

作者不对任何滥用行为及后果负责,如发现新漏洞请及时联系厂商并遵循漏洞披露规则。

漏洞简述

Linux sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,-h(--host)选项在 2013 年 9 月发布的 Sudo v1.8.8 中实现,此选项允许用户列出当前主机以外的主机的sudo规则

Linux sudo host 权限提升漏洞(CVE-2025-32462)源于sudo 的-h(--host)选项错误应用远程主机规则到本地,攻击者可绕过权限提升至root并执行任意代码

CVE-2025-32462 漏洞自12 年前host选项实现以来就一直隐藏在人们的视线之外,由于它是内置选项,因此无需利用其他漏洞即可提升权限,该漏洞只能通过HostHost_Alias指令的特定配置才能利用,而这些指令在企业环境中很常见

影响版本

1.9.0 <= sudo <= 1.9.17

1.8.8 <= sudo <= 1.8.32

利用条件

  1. 本地低权限用户
  2. 存在基于主机的权限规则:/etc/sudoers 中定义HostHost_Alias
  3. 知道允许执行命令的远程主机名

漏洞复现与原理分析

一、环境搭建

任意找一个sudo版本在受影响区间的linux系统即可,我这里用的是CentOS7.9,sudo版本如下

创建一个新用户User1,密码为User1111

二、漏洞复现与原理分析

(一) Host_Alias

以下/etc/sudoers文件片段展示了为User1用户定义的两条规则

此文件分发到三台服务器(LDAPClient、LDAPServer 和 Pentest),目标是限制对LDAPClient服务器的访问,但允许User1用户完全管理LDAPServer服务器

  • 前两行是Host_Alias指令,定义包含主机列表的变量
  • 第3行的规则使用Host_Alias指令
    • 允许User1用户在LDAPServer服务器上以 root 身份执行所有命令
    • 明确拒绝LDAPClient服务器上的规则
  • 第4行的规则明确允许User1用户在Pentest服务器上执行所有命令
Host_Alias SERVER           = LDAPClient, LDAPServer
Host_Alias CLIENT           = LDAPClient
User1      SERVER, !CLIENT  = NOPASSWD:ALL
User1      Pentest          = NOPASSWD:ALL

在LDAPClient服务器执行sudo -l,可验证User1不允许在LDAPClient服务器上运行任何 sudo 命令,因为!CLIENT否定指令明确拒绝了它

(二) -h/--host选项

-h host--host=host选项旨在允许用户列出其针对不同主机的 sudo 规则

当User1用户执行设置了host选项的 list 命令时,将显示指定主机的规则,确认User1用户被允许在LDAPServer服务器上执行所有 root 命令

sudo -l -h LDAPServer

(三) 漏洞点

执行sudo或sudoedit命令时,如果host选项引用了一条不相关的远程主机规则,则会导致 sudo 将该规则视为对本地系统有效,因此远程主机规则允许的任何命令都可以在本地计算机上执行

尽管明确拒绝User1用户访问LDAPClient服务器,但可以通过指定LDAPServer服务器的主机选项来实现 root 访问权限

其中sudo -i的主要作用是 以 root 用户(超级管理员)的身份启动一个交互式的登录shell

还可以指定Pentest服务器以获得完全的 root 访问权限

防御措施

安装最新的 sudo 软件包,此问题目前没有其他解决方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Neolock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值