sudo 与提权漏洞
sudo 让普通用户按策略以 root 或其他账号执行命令,是 Linux 与 macOS 上最普遍的提权入口,也因此成为漏洞挖掘的重点目标。CVE-2021-3156(Baron Samedit)出在 sudo 解析 sudoedit -s 命令行参数时的转义缺陷,本地普通用户无需口令即可获得 root;受影响范围横跨 1.8.2 到 1.8.31p2、1.9.0 到 1.9.5p1 等多个上游版本。自查要点不是只报一个版本号,而是版本号与发行版安全公告双确认,因为各大发行版普遍以 backport 方式修复而不改主版本号。
基本信息
| 加固项 | 提权组件安全 |
|---|---|
| 适用平台 | Linux 与 macOS(sudo) |
| 风险等级 | 高 |
| 基线 | sudo 为发行版已修复的包版本 |
| 检查点 | 上游版本号 + 包变更日志 + 发行版公告三者一致 |
典型使用场景
- 接手存量主机做资产盘点:确认系统自带 sudo 是否落在受影响区间
- 应急响应:怀疑有本地提权痕迹时,先复核基线组件版本
- 合规测评:关键组件不得存在公认的高危漏洞
- 镜像与制品交付:容器基础镜像、虚拟机模板出厂前自查一次
- 升级后复测:确认新版本真正生效,而不只是把包装上了
版本核查与升级
版本核查与升级
sudo --version | head -3 # 版本号与编译选项
sudo -V 2>&1 | head -5 # 部分发行版在此展示补丁串
rpm -q sudo 2>/dev/null; dpkg -l sudo 2>/dev/null | tail -2
rpm -q --changelog sudo 2>/dev/null | head -20 # 看是否已 backport CVE-2021-3156
sudo dnf update -y sudo 2>/dev/null || sudo apt-get install --only-upgrade -y sudo
sudo -l | head -5 # 升级后确认策略解析正常输出逐列读法
| 命令/字段 | 含义 | 正常与异常 |
|---|---|---|
| sudo --version | 上游版本与编译时间 | 落在受影响区间且公告未修复=异常 |
| rpm -q sudo | 已装包版本号 | 空输出说明系统不是 RPM 系 |
| rpm -q --changelog | 包维护者变更记录 | 出现对应 CVE 修复条目=已 backport |
| dpkg -l sudo | Debian 系版本与状态 | 状态非 ii 说明包未完整安装 |
| sudo -l | 当前用户可执行的提权策略 | 升级后报语法错误=配置被破坏 |
版本号相同不代表存在漏洞:RHEL/CentOS/Debian 常以 backport 方式修复,判定必须落到包变更日志或发行版安全公告,单看上游版本对照表会误判。
升级 sudo 属于高危操作:动手前保留一个已 root 的会话或带外控制台,确认升级后能正常提权、能执行 sudo 命令,再退出该会话。