7 月 30 日那天,Arch Linux DevOps 团队的 Antiz 在 aur-general 邮件列表发了一封不到 80 字的公告:
由于 AUR 近期出现大量恶意接管(adoption)及跟进 commit,包接管功能暂时关闭。我们会在处理完情况后发后续通知,期间请大家举报还没被处理的可疑接管事件,并保持警惕。
两天后,8 月 1 日,他补了一条更狠的——推送也整个禁了。
“Sorry for the inconvenience.” 这种轻描淡写的歉意,背后是开源派最不想看到的场景:一个全社区维护的、号称 14 万用户的包仓库,正在被人当成免费矿池。
这事到底多大?
官方 AUR 仓库目前挂着 107,405 个包,其中 13,051 个是孤儿包。过去一周里新增了 273 个,更新了 5,575 个。
然后被偷的有多少?早期社区贴的数字是 400+,随后被审计拉到 1,500+——而且这个数还在涨。
被黑路径高度一致:盯上那些维护者跑路的孤儿包 → 申请接管(adoption)→ 上传看似正常的 PKGBUILD 更新 → 在安装脚本里偷偷塞一条 npm install 调用,下载 atomic-lockfile 这类可疑载荷。
最有戏剧性的是 alvr(一个 VR 流媒体开源项目)的 AUR 包——一个压根不依赖 Node.js 的项目,PKGBUILD 里突然冒出来 npm 命令,看着就让人冒冷汗。
为什么 AUR 总被盯上?
AUR(Arch User Repository)这玩意儿本质上是个信任真空。
它是社区维护的:任何注册用户都能上传 PKGBUILD(Arch 的”包配方”),任何人都能申请接管一个孤儿包。审核机制?基本靠社区人肉 review。Antiz 这类 DevOps 团队做的事情更多是救火,不是巡逻。
npm、PyPI、RubyGems 这些中心化仓库好歹还有个发布令牌机制。AUR 直接把”谁能上传代码”这件事,简化成了”你愿意填个表单”。
这次的套路其实和 npm 上针对 axios(周下载量 5500 万)这类明星包搞 typosquatting(拼写仿冒)是一个道理——热门软件的下游分发环节,永远是攻击者 ROI 最高的地方。区别是 npm 至少还是个公司运营,AUR 是几个志愿者在盯着。
而且 Arch 用户画像特别扎心:愿意用 AUR 的人,普遍比普通 Linux 用户更爱折腾、装更多冷门工具,也更可能成为攻击者的目标。
Arch 这次怎么处理的?
紧急止血用了三板斧:
- 7 月 30 日关掉 adoption(接管功能),但 push(推送)还开着
- 8 月 1 日直接把 push 也禁了,等于让 AUR 进入”只读”模式
- 新账号注册
也就是说,Arch Linux 这次的反应顺序其实是逐步升级——先堵最明显的入口,发现不够再堵第二个。这种保守态度本身也说明一件事:他们也怕误伤正常用户。
公告里说”我们会发后续通知”——目前还没看到。这事儿大概率还在审计中。
用户现在能做什么?
Arch 官方的建议很直白:更新 AUR 包前自己 review PKGBUILD diff。具体操作:
- 看
PKGBUILD 文件的 git diff,特别注意 package() 函数里有没有突然冒出 npm、curl ... | bash、wget 这类可疑命令 - 看是不是新增了
.install 文件(恶意载荷最爱藏这里) - 查 commit 历史里有没有”格式化大改动”——攻击者经常用大段重写来掩盖插入的恶意代码
已经装了的用户也别装死,赶紧 pacman -Qm 列一下 AUR 包,翻翻最近的更新日志。
这事给开源圈的启示
说实话,AUR 被搞不是新闻,AUR 没被搞才是新闻。
类似的事情这几年来在每个用户贡献型仓库都发生过:npm 的 event-stream 事件、PyPI 的 typosquatting、RubyGems 的 SleeperGem、WordPress 插件供应链攻击(30 个插件被植入后门那次还历历在目)……
只要仓库设计是”谁都能上传代码”,攻击者就一定会来。
Arch 的两难在于:AUR 的灵魂就是”社区驱动”,一旦引入强制审核、强制签名、强制等待期,就会有用户跑去 EndeavourOS、Manjaro 那些更宽松的 Arch 衍生版。Arch 官方每次想加限制都得掂量——会不会把核心用户赶走。
这次的处置大概率会推动几件事:接管孤儿包的冷却期、新账号的发包门槛、PKGBUILD 签名验证机制。但这些都是”治标”。
真正的问题是:开源软件分发的”信任根”到底应该放哪?
中心化仓库(npm、PyPI)有公司运营、有人工审核、有 token 机制,但出问题也是大新闻;社区仓库(AUR、COPR)灵活但脆弱。Arch 这次算是给所有”轻量级”开源分发渠道提了个醒——人治模式有极限。
至于 Antiz 那句”feel free to report suspicious events”,听起来温柔,翻译过来其实是:
我们也没招,大家一起瞪大眼睛吧。

↓ 点击阅读原文,查看相关链接 ↓