一款由知名开发者 DHH 主导的 Arch Linux 桌面发行版 Omarchy,近日被披露存在一个严重的本地提权漏洞:系统中任何普通用户进程都可以无需密码、无需 sudo 直接获得 root 权限。问题出在默认的 Docker 配置上。安全研究员已通过负责任披露流程报告,官方已在 4.0.1 版本中修复。
背景:Omarchy 是什么
Omarchy 是 Ruby on Rails 作者 DHH 推出的一个面向开发者的 Arch Linux 桌面配置发行版,主打”开箱即用”的开发体验——预装好了 Docker、编辑器、终端工具链等一整套环境,用户装完系统即可开始写代码。这种高度集成的思路让 Omarchy 在开发者社区迅速走红,但也埋下了隐患:为了”开发体验”,系统替用户做了一些安全上的取舍,而用户并不知情。
漏洞原理:docker 用户组等于 root
Omarchy 把默认用户加入了 Linux 的 docker 用户组,这样用户可以免 sudo 执行 docker run 等命令。问题在于:Docker 守护进程以 root 身份运行,监听 /var/run/docker.sock,而 docker 组成员可以直接与该 socket 通信。Docker 官方文档明确警告过——docker 用户组等价于授予 root 级权限。
利用方式极其简单。在受影响的系统上,普通用户直接执行:
docker run --rm -v /:/hostroot alpine cat /hostroot/etc/shadow
就能读出本应由 root 独占的 /etc/shadow 密码哈希文件。命令由普通用户进程发起,但实际的文件访问是 root 权限的 Docker 守护进程完成的。
影响面:整个用户会话无一幸免
Linux 的附加组会被子进程继承。作者遍历了用户 systemd –user 实例下的整个进程树,发现 docker 组几乎存在于会话中的每一个正常进程上。这意味着任何可以运行不可信代码的地方——AI 编码代理及其 harness、浏览器、编辑器、npm 脚本、各类开发工具、后台进程——一旦被攻破,立刻就是整机沦陷,中间没有任何权限边界。
更值得警惕的是”默认不安全”
这个配置是 opt-out 而非 opt-in:即使用户根本不用 Docker,这个安全隐患也已经被替他们开启了,而且没有任何提示。文档里的措辞甚至有误导性——”让你以普通用户而非 root 运行 Docker”,很容易让人以为 Omarchy 配置了某种 rootless 模式,实际上并没有。该配置 2025 年 6 月引入,一度短暂移除后又重新启用,直到 2026 年 8 月 24 日才从默认配置中删除。
社区反响与启示
HN 讨论区最高赞的评论直接点名:”为什么不用 rootless Podman?都 2026 年了。”这与作者文末的建议一致——Podman 无守护进程,容器运行在独立 user namespace 中,根本不需要 root。也有评论指出这与 Omarchy 的”omakase(主厨发办)”哲学天然冲突:rootless 需要用户付出额外复杂度,而 Omarchy 的定位就是不让用户操心。另有开发者为 DHH 辩护,认为这只是不了解 docker 组含义的疏忽,且修复响应速度很快,是健康信号。但作者坦言这已不是他第一次在 Omarchy 中发现安全问题,对其安全决策流程仍持保留态度。
更宏观的背景是:AI 正在越来越多地产出针对核心基础设施的高危 CVE,而开发者机器本身就是高价值目标——为图方便关掉安全护栏、在 dotfile 里明文存凭证、累积大量系统访问权。面向开发者的发行版更应该把安全默认值当作头等大事。
原文链接:Omarchy: Any User Process Can Escalate to Root
HN 讨论:news.ycombinator.com/item?id=49499854