
漏洞概述
Ubuntu Desktop 24.04 及其后续版本在默认安装中存在一个高危的本地提权(LPE),编号为 CVE-2026-3888。该漏洞允许一个非特权的本地攻击者获取完整的 root 权限。此问题由 Qualys 威胁研究团队率先发现,其根源在于 snap-confine 与 systemd-tmpfiles 这两个深度集成于 Ubuntu 默认部署中的标准系统组件之间产生了非预期的交互,使得该漏洞的潜在威胁范围被显著放大。
技术背景
要理解这个漏洞,首先需要了解 snapd。它是 Ubuntu 的一个后台服务,主要职责是管理 snap 软件包。snap 是一种包含了自身所有依赖的独立应用包格式。除了软件包管理功能,snapd 还负责执行一个权限模型,严格控制每个 snap 应用对宿主系统的访问范围,因此它兼具了软件包管理器与安全策略引擎的双重角色。
漏洞的核心涉及两个关键组件:
- snap-confine:这是一个设置了
setuid root 权限的二进制文件。它的任务是在 snap 应用实际执行前,为其构建一个安全的沙盒环境。这个过程包含了复杂的隔离机制,例如挂载命名空间隔离、cgroup 强制、AppArmor 策略加载以及 seccomp 过滤。
- systemd-tmpfiles:这个工具专门管理
/tmp、/run 和 /var/tmp 等易失性目录。它会在系统启动时创建这些目录,并定期清理其中过期的文件。然而,正是这个“定期清理”的特性,如果配置不当或清理周期可被预测,就可能引入符号链接竞争条件,从而为本地提权攻击打开一扇门。
漏洞利用分析
CVE-2026-3888 在 CVSS v3.1 评分体系中被评为 7.8 分,属于高危级别。其攻击向量评分为 AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H。这意味着攻击者需要具备本地访问权限和低权限账户,但无需用户交互。更关键的是,其影响范围超出了漏洞组件本身,对系统的机密性、完整性和可用性均构成高度威胁。
漏洞利用的复杂度较高,原因在于其中包含了一个时间延迟机制:systemd-tmpfiles 默认会定期清理 /tmp 目录(在 Ubuntu 24.04 中周期为 30 天,后续版本缩短为 10 天)。完整的攻击链条可以分为三个阶段:
- 攻击者耐心等待,直到清理守护进程删除了
snap-confine 在沙盒初始化过程中需要使用的关键目录 /tmp/.snap。
- 该目录被系统删除后,攻击者迅速重建同名的
/tmp/.snap 目录,并在其中植入恶意载荷。
- 当系统下一次进行沙盒初始化时,
snap-confine 会以 root 权限去绑定挂载这些被攻击者控制的文件,最终实现在特权上下文下的任意代码执行。
修复建议
所有受影响的 Ubuntu 系统都应当立即升级 snapd 软件包至已修复的版本。以下是各版本对应的修复情况:

根据 Qualys 的报告,在默认配置下运行的 Ubuntu 16.04 至 22.04 LTS 版本的系统不受此漏洞影响。不过,他们仍然建议那些处于非标准配置环境下的用户,作为一项预防性措施,也应当安装相应的补丁。
相关发现
在对 Ubuntu 25.10 进行发布前的安全审查时,Qualys TRU 团队还在 uutils coreutils 包(这是 GNU 核心工具的 Rust 语言重写版本)中发现了一个竞争条件漏洞。该漏洞存在于 rm 工具中,它允许一个非特权的本地攻击者,在 root 用户拥有的 cron 任务(特别是针对 /etc/cron.daily/apport 的任务)执行期间,通过符号链接替换目录条目。这可能导致 root 权限下的任意文件删除,或者通过攻击 snapd 沙盒目录进一步实现提权。
Ubuntu 安全团队在公开发布该系统前,采取了一个临时缓解措施:将 Ubuntu 25.10 中的默认 rm 命令恢复为使用 GNU coreutils 版本。目前,上游的修复已经应用于 uutils 的代码仓库中。
参考来源:
Ubuntu Desktop Systems Vulnerability Enables Attackers to Gain Full Root Access
https://cybersecuritynews.com/ubuntu-desktop-systems-vulnerability/
对于这类系统级安全漏洞的深度讨论和技术分析,欢迎在 云栈社区 的相应板块与更多开发者及安全研究者进行交流。
|