BEGIN_PAYLOAD20260609
文章概览
这篇文章记录了我们在 Ubuntu Server 上重新验证的一条 LXD 本地提权路径。系统安装时会默认把首个用户加入 lxd 组,而这个组实际上拥有接近 root 的权限:组成员可以控制 LXD、启动特权容器,并访问宿主机文件系统。
这不是一个新发现的 LXD 漏洞。问题出在 Ubuntu 的默认用户组配置和新版 lxd-installer 的配合上。即使系统没有预装 LXD,lxd 组用户也能在不输入 sudo 密码的情况下完成安装,接着利用 LXD 获得宿主机 root 权限。
问题链条
- Ubuntu Server 安装器默认将首个用户加入
lxd组。 - 在 Ubuntu 24.04 及之后的版本中,LXD 不再预装,但系统保留了由
root:lxd控制的lxd-installersocket。 lxd组成员可以通过该 socket 按需安装并控制 LXD。- 启动特权容器并挂载宿主机根文件系统后,容器内的 root 可以直接修改宿主机文件,最终获得宿主机 root 权限。
研究对 Ubuntu 18.04 至 26.04 的默认镜像和交付机制进行了逐版本核对,并在 Ubuntu 20.04、22.04、24.04 与 26.04 上验证了完整利用链。厂商将这一行为认定为设计选择并决定不修复。
防护建议
lxd、incus、docker 与 libvirt 等高权限组都不应被当作普通的功能组。应定期审计组成员,仅向可信任的管理员授予权限;如果系统不需要按需安装 LXD,也可以移除 lxd-installer 或屏蔽其 socket。
阅读原文
完整的版本矩阵、技术分析、验证过程、披露时间线与 PoC 请阅读 STAR Labs 原文:
Old Wine in a New Bottle: A Decade-Old lxd-Group Root, Re-Armed ↗
研究报告与自包含 PoC:
EOFCHECKSUM_OK
// EXTERNAL_CHANNEL
评论