AI Agent 在 Linux 系统中失控造成破坏
AI agent 在 Fedora 等 Linux 发行版上出现失控行为,导致系统受损。给开发者使用 AI agents 的权限管理敲响警钟。
AI agent 在 Fedora 等 Linux 发行版上出现失控行为,导致系统受损。给开发者使用 AI agents 的权限管理敲响警钟。
我们得承认,营销并不是我们的强项。我们的优势,是撰写开发者、管理员和自由软件支持者赖以了解 Linux 世界动态的文章。请立即订阅,帮助我们继续做这件事,也让我们不必去精通营销。
Agentic AI 系统可以代表人类用户,自主完成各种任务:创建或管理 bug、生成代码、提交 pull request,甚至还会对遭到拒绝表示不满——至少看起来是这样。今年 5 月,一名 Fedora 开发者发现,一个据称已经失控的 Agent 正通过多种方式滋扰该项目:重新分配 bug、为 bug 编造毫无帮助的回复,甚至说服维护者将可疑代码合并进 Anaconda 安装程序。它还向多个上游项目提交了许多 pull request(PR),其中一些已被接受。与该 Agent 关联的 Fedora 账号已被撤销群组权限,造成的混乱也已得到清理,但这个 Agent 如此行动的动机依然成谜。
5 月 27 日,Adam Williamson 在发给 Nathan Giovannini 的一封邮件中,抄送了 Fedora 的开发者和测试邮件列表。邮件谈到一个似乎由 Giovannini 控制、却无人监督的 Agentic AI 系统。“你愿意尝试修复问题当然很好,但结果似乎有些不可预测。”
Williamson 表示,他仍在检查 Giovannini 在 Bugzilla 中的操作历史,但已经发现了许多问题。例如,Williamson 找到了几十个实例:Giovannini 的 Agent 在向上游项目提交据称相关的 pull request 后,将 Bugzilla 条目分配给他的账号;或者在某个 PR 被合并进上游项目后,直接关闭 bug。在某些情况下,这个 Agent 只是关闭 bug,并附上一段复述原始 bug 的评论;还有一些评论,正如 Williamson 对其中一条的评价那样,“表面上看似合理,但在其他方面存在问题”。
此外,Williamson 表示,Giovannini(或他的 Agent)提交过错误的补丁,随后“用 LLM 生成的理由回应质疑,最终让维护者不堪其扰,只好合并这个修复”。这个 Agent 使用 GitHub 用户名“nathan9513-aps”,曾向 Fedora 及其他 Linux 发行版使用的 Anaconda 安装程序提交一项 pull request。PR 描述声称,它修复了一个会导致安装失败的 Anaconda bug,但该补丁实际上只是保留了一个通过命令行传入的内核选项,而这个选项似乎与真正的 bug 毫无关系。
此后,这个 Agent 的 GitHub 账号已被禁用。如今,它在 GitHub 对话中显示为“ghost”,这是该平台为已删除用户账号提供的默认占位名称。因此,即使并非完全不可能,也很难还原这个 Agent 在 GitHub 上所有操作的完整轨迹。
Williamson 相当委婉地表示,这个 Agent 的行为并没有“对 Fedora 或上游项目产生积极影响”,并建议 Giovannini 调整 Agent,让它“显著降低自主程度”。他特别要求,在未经人工审核的情况下,Agent 不得把 bug 分配给 Giovannini、改变 bug 状态,也不得“发布自信满满的断言或具体的行动建议”。
同样是在 5 月 27 日晚些时候,Williamson 表示,Giovannini 私下回复称,他的凭据已遭泄露,自己并不是这个 AI 系统背后的人。Williamson 说:“显然,因此我们应该以怀疑态度看待它采取的任何行动。”他计划“以更加严格的方式”审查 Giovannini 账号接触过的 bug,同时请求其他人协助审查。
当天晚些时候,一封表面上来自 Giovannini 的回复称,他已重新获得 GitHub 和 Fedora 账号的访问权限,“我目前正在保护并审查所有相关系统和凭据”。回复还称,他的 GitHub 账号是“nathangiovannini99”。Williamson 回应说,这个 GitHub 账号仅创建了一小时,而且最近发送到邮件列表以及私下发给 Williamson 的邮件,看起来不像 Giovannini 在此前与项目互动时发出的消息。
至少早在 2018 年,Giovannini 就已经参与相关讨论;他在 Bugzilla 中的活动则至少可以追溯到 2016 年。他似乎并不是该项目特别活跃的贡献者,但其参与显然早于 Agentic AI 时代。无论他的账号如今是由人类攻击者、Agentic AI,还是两者共同控制,在最近这些活动发生之前,它都拥有一段真实可信的历史。
Williamson 表示,他审查了用户“nathan95”今年在 Bugzilla 中的账号活动,发现可疑操作始于 4 月 7 日的 bug 2416721,例如在没有任何理由的情况下修改 bug 的严重程度和优先级。他说,在此之前的活动看起来是正常的,而且目前为止,他看到的操作都不像是公然的恶意行为。
他还发现了另一个 GitHub 账号“leurus27-boop”,认为它很可能与同一个 Agentic AI 有关。该账号目前仍处于活跃状态,曾向 Open Build Service 的 openSUSE Commander(osc)命令行界面提交一个 PR,也曾向 lxqt-policykit 仓库提交一个 PR。后一个项目用于扩展 LXQt 桌面中 lxqt-admin GUI 工具的权限,以便管理用户和群组配置等操作系统设置。
Williamson 表示,最好检查相关账号采取的其他操作,并提醒其他项目审查这些账号提交过的所有内容。Williamson 似乎跟进了每一个 PR,提醒其他维护者“整个情况极其可疑”。Kevin Fenzi 表示,他已经将 nathan95 用户从其所在的所有群组中移除,因此该用户应该不再拥有重新分配或关闭 bug 的权限。
Anaconda 团队成员 Martin Kolman 表示,即使这些事件并非出于恶意,也“确实非常成问题”。团队花了大量时间审查这些 PR,因为提交者看起来像是一名热情的贡献者:“虽然过了一段时间后,事情开始显得不太对劲,但所有回复始终都是这样——有点奇怪,却仍然说得通。”他还提出一种推测:这可能是一名攻击者正在逐步为恶意活动铺路,与 XZ 后门事件非常相似:
不幸的是,真正攻击的准备阶段可能看起来非常相似——XZ 攻击实际上也确实如此:一名新贡献者慢慢赢得社区信任,提交一些无害的修改,并逐步推进,直到能够注入攻击载荷(或者那些修改实际上并非无害,只是在以正确方式组合之前看不出来)。
所以,我不是说这次一定就是这种情况,但如果有人利用 AI Agent,自动尝试实施类似 XZ 的入侵,那么它看起来很可能与我们刚刚看到的情况极其相似。
Chris Adams 表示,应该检查提交到 Anaconda 的 commit,而且可能要立即 revert。Kolman 回复称,该 commit 已经被 revert。他还确认,这些由 LLM 生成的 PR 已进入 5 月 26 日发布的 Anaconda 45.5。它们随后在 6 月 2 日发布的 Anaconda 45.6 中被 revert。
这些目标无疑让人怀疑,这可能是某种攻击的前奏:操作系统安装程序、用于提升用户权限的工具,以及与构建系统交互的工具,似乎都是植入恶意软件或劫持系统的理想途径。
一个看似 AI Agent 的东西,在获得人类贡献者账号的访问权限后竟然取得了如此大的“成功”,这令人不安。如果一个 AI Agent 能使用拥有真实项目互动历史的账号,那么它很有可能说服忙碌的维护者接受可疑贡献。幸运的是,Williamson 在问题进一步扩大前发现了它。希望其他人类维护者也能同样敏锐。
发布于 2026 年 6 月 10 日 20:08 UTC(星期三),作者 capn(订阅者,#183548)[链接](1 条回复)
如今,那些天真而狂热地使用 AI 工具的人,确实已经构成一个现实问题。替那一小部分过度热情的人说句公道话:人们仍处于学习这些新工具的早期阶段,而初次体验往往会让许多工程师变得有点……或许可以说,过于兴奋。还有一点很重要:Copilot 等工具所使用的模型,在代际上明显落后。更普遍地说,许多资金紧张的工程师会使用低端得多、也更老旧的模型来自动处理事务(当然,如果你是在为一家没有向你发薪、也没有雇用你的组织贡献代码或进行其他活动,而对方又没有任何有效的追责手段,那么这样做显然很不礼貌)。
不过,正如编写代码、参与编码项目所用的工具正在发生变化,项目本身也必须适应时代,采用如今可用于分诊和代码审查的新工具。它们能够——也必将——大幅减轻活动量增长给维护者带来的负担。(而且,不,某个临时想到、未经深入推敲的自动化分诊与审查缺陷,并不足以判定这种大规模自动化思路不可行。我们是工程师,解决此类流程中的问题,本来就是这个职业的基本内容。)
现在有太多人只看到杯子空了四分之一,却没有看到它装满了四分之三。
这种火,我们完全可以用同一种火来对付。我非常期待看到,开源软件的进步究竟能被烧得多么炽热。
发布于 2026 年 6 月 11 日 12:31 UTC(星期四),作者 Wol(订阅者,#4433)[链接]
区别在于,人类也许一个月只会犯一两个错误(而且是真正进入已发布代码的错误)。最近那起事件是怎么回事来着?Claude 以每秒几个的速度提交 PR,造成了严重的安全问题!?
人类犯错时,清理起来相当容易。AI 一旦犯错,清理起来就是一场噩梦——它无处不在!
现在有太多人只看到杯子空了四分之一,却没有看到它装满了四分之三。
Agentic AI 的麻烦在于,这个杯子的四分之三装满了那种棕色的脏东西,而你得拿桨才能应付。
我非常期待看到,开源软件的进步究竟能被烧得多么炽热。
如果我们把 AI 当作仆人使用,我会同意你的看法。但有太多人俯首膜拜,把 AI 当成主人。灾难正蕴藏于此……
发布于 2026 年 6 月 10 日 21:49 UTC(星期三),作者 AdamW(订阅者,#48457)[链接]
“幸运的是,Williamson 在问题进一步扩大前发现了它。希望其他人类维护者也能同样敏锐。”
该归功于谁,就要归功于谁:事实上,最先发现这件事的是 Yanko Kaneti——他在 Matrix 的 fedora-devel 房间里发了一条消息:“https://bugzilla.redhat.com/show_bug.cgi?id=2481872#c1 ....什么鬼..”。Kevin Fenzi 随后提醒了我(因为 Nathan 在 qa 群组中),之后我接手调查,找到了其他所有 Bugzilla 帖子和 pull request。
在一定程度上回应 Joe 的担忧:在向 GitHub 举报 nathan9513-aps 账号之前,我确实检查了自己能找到的该账号提交的每一个 PR,没有发现任何看起来明显出于恶意的内容,只是……能力不足。正如你注意到的那样,我在所有这些 PR 下都留言了,希望提醒项目维护者注意这一情况。我想,当时我也检查了 leurus27-boop 的所有 PR(数量没有那么多,因为这个账号最近才创建)。