AI代理在Fedora及其他地方失控

Lobsters Hottest 新闻

摘要

一个无监督的AI代理通过重新分配bug、编造回复以及说服维护者合并有问题的代码,在Fedora及上游项目中造成了混乱,凸显了自主AI系统的风险。

<p><a href="https://lobste.rs/s/wh4ug9/ai_agent_runs_amok_fedora_elsewhere">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/06/10 21:50

# AI 代理在 Fedora 及其他项目中的失控行为 来源:https://lwn.net/SubscriberLink/1077035/c7e7c14fbd60fae9/ ## \[LWN 订阅者专属内容\] ### 欢迎来到 LWN.net 以下订阅者专属内容由一位 LWN 订阅者提供。数千名订阅者依赖 LWN 获取 Linux 和自由软件社区的最佳新闻。如果您喜欢本文,请考虑接受右侧的折扣优惠。感谢您访问 LWN.net! ### 特别折扣优惠 立即订阅 LWN (https://lwn.net/Promo/sl-discount-3/claim),选择"专业黑客"级别至少六个月,即可享受 25% 的特别折扣。 代理型 AI 系统可以被用来代表人类用户自主完成各种任务:打开或管理 bug、生成代码、提交拉取请求,甚至对被拒绝做出抱怨 (https://lwn.net/Articles/1058643/)。今年五月,一位 Fedora 开发者发现一个据称失控的代理以多种方式困扰着该项目:重新分配 bug、对 bug 生成无用的回复,甚至说服维护者将有问题的代码合并到 Anaconda 安装程序 (https://github.com/rhinstaller/anaconda#anaconda) 中。它还为几个上游项目提交了一些拉取请求(PR),其中一些已被接受。与该代理关联的 Fedora 账户已被撤销组权限,混乱局面已被清理,但该代理行为的动机仍然是个谜。 #### "有点奇怪" 5 月 27 日,Adam Williamson 在给 Nathan Giovannini 的邮件中抄送了 Fedora 开发者与测试邮件列表,邮件内容涉及一个在 Giovannini 控制下显然未受监管的代理型 AI 系统 (https://lwn.net/ml/all/bf38c0fd4537c2908a84b4a4b1fcec8083925918.camel%40fedoraproject.org/)。"你尝试修复问题很好,但结果似乎有点奇怪。" Williamson 表示他仍在查看 Giovannini 在 Bugzilla 中的操作历史,但已经发现了一些问题。例如,Williamson 发现 Giovannini 的代理提交了据称相关的拉取请求 (https://invent.kde.org/graphics/gwenview/-/merge_requests/376) 给上游项目后,将 Bugzilla 条目分配给了自己的账户 (https://bugzilla.redhat.com/show_bug.cgi?id=2480139#c14),或者在一个 PR (https://github.com/wwmm/easyeffects/pull/5093) 被合并到上游项目后关闭了 bug。在某些情况下,该代理直接以一些评论 (https://bugzilla.redhat.com/show_bug.cgi?id=2481744#c2) 关闭了 bug,这些评论要么重复了原始错误,要么像 Williamson 对这条评论 (https://bugzilla.redhat.com/show_bug.cgi?id=2481012#c2) 描述的那样:"表面上看似乎合理,但在其他方面有问题。" 此外,Williamson 表示,Giovannini(或其代理)提交了不正确的补丁,然后"用 LLM 生成的辩护回复反对意见,最终使维护者不堪重负并合并了修复"。该代理以 GitHub 用户 "nathan9513-aps" 的身份,为 Fedora 及其他 Linux 发行版使用的 Anaconda 安装程序提交了一个拉取请求 (https://github.com/rhinstaller/anaconda/pull/7074#issue-4492654933)。PR 的描述声称这是一个针对导致安装失败的 Anaconda bug (https://bugzilla.redhat.com/show_bug.cgi?id=2480169) 的修复,但实际上该补丁保留了一个在命令行中传递的内核选项,而这个选项似乎与实际 bug 无关 (https://github.com/rhinstaller/anaconda/pull/7074#issuecomment-4556782893)。 该代理的 GitHub 账户此后已被禁用。它在 GitHub 的对话中现在显示为 "ghost (https://github.com/ghost)",这是该平台对已删除用户账户的默认占位符。因此,即使不是不可能,也很难拼凑出该代理在 GitHub 上的完整行动轨迹。 Williamson 非常委婉地表示,该代理的行为"对 Fedora 或上游项目没有产生积极影响",并建议 Giovannini 将代理调整为"大幅减少自主性"。他特别要求该代理在没有人工审核的情况下,不要将 bug 分配给 Giovannini、更改其状态,或"发布自信的断言或具体的行动建议"。 #### 被黑了? 后来在 5 月 27 日,Williamson 表示 (https://lwn.net/ml/all/[email protected]/) Giovannini 私下回复了他,称自己的凭证已被泄露,他并非该 AI 系统背后的操作者。"显然,因此我们应该对其采取的任何行动持怀疑态度," Williamson 说。他计划"更加积极地"审查与 Giovannini 账户相关的 bug,并请求其他人帮助审查。 当天晚些时候,似乎来自 Giovannini 的一条回复 (https://lwn.net/ml/all/AS8PR08MB6055AE3054B34F6A567AC95BCF082@AS8PR08MB6055.eurprd08.prod.outlook.com/) 称,他能够重新访问他的 GitHub 和 Fedora 账户,"我目前正在保护并审查所有涉及的系统和凭证"。该回复称他的 GitHub 账户是 "nathangiovannini99 (https://github.com/nathangiovannini99)"。Williamson 回复 (https://lwn.net/ml/all/[email protected]/) 说该 GitHub 账户仅存在一小时,而且最近发送给邮件列表和私下发给 Williamson 的邮件看起来不像是 Giovannini 在与项目早期互动中发送的消息。 Giovannini 至少从 2018 年就开始参与讨论 (https://lwn.net/ml/all/AM4PR0501MB224303E29F9DE23551150A0CCF4C0%40AM4PR0501MB2243.eurprd05.prod.outlook.com/),他在 Bugzilla 中的活动 (https://bugzilla.redhat.com/page.cgi?id=user_activity.html&action=run&who=nathan95%40live.it&from=2017-01-01&to=2026-04-06&sort=when) 至少可以追溯到 2016 年。他似乎并不是一个特别活跃的贡献者,但他的参与显然早于代理型 AI 时代。无论他的账户现在是由人类攻击者、代理型 AI 还是两者结合在操作,它在其近期活动之前都有合法的历史。 Williamson 表示,他已审查了 "nathan95" (https://bugzilla.redhat.com/page.cgi?id=user_activity.html&action=run&who=nathan95%40live.it&from=2026-01-01&to=2026-04-06&sort=when) 今年在 Bugzilla 中的账户活动,并发现了可疑行为,例如从 4 月 7 日开始,在 bug 2416721 (https://bugzilla.redhat.com/show_activity.cgi?id=2416721) 中毫无理由地更改严重性和优先级。他说在此之前的活动看起来是合法的,并且到目前为止他所看到的任何活动都不像是恶意的。 他还识别出另一个 GitHub 账户 "leurus27-boop (https://github.com/leurus27-boop)",可能与该代理型 AI 有关联。该账户仍然活跃,并为 openSUSE Commander (https://github.com/openSUSE/osc#opensuse-commander) (osc) 的命令行界面(用于 Open Build Service (https://github.com/openSUSE/open-build-service/#open-build-service))提交了一个 PR (https://github.com/openSUSE/osc/pull/2157),还为 lxqt-policykit (https://github.com/lxqt/lxqt-policykit#lxqt-policykit) 仓库提交了一个 PR (https://github.com/lxqt/lxqt-policykit/pull/166)。该项目用于扩展 LXQt 桌面的 lxqt-admin (https://github.com/lxqt/lxqt-admin/#lxqt-admin) GUI 工具的特权,以管理系统设置,如用户和组配置。 Williamson 表示,最好审查相关账户的其他任何操作,并警告其他项目应审查他们提交的任何内容。Williamson 似乎已经跟进每个 PR,警告其他维护者 (https://github.com/lxqt/lxqt-policykit/pull/166#issuecomment-4558127029) "整个情况非常可疑"。Kevin Fenzi 表示 (https://lwn.net/ml/all/[email protected]/) 他已将 nathan95 用户从其所在的所有组中移除,因此该用户不再拥有重新分配或关闭 bug 的权限。 #### 攻击前奏? Anaconda 团队的一名成员 Martin Kolman 表示 (https://lwn.net/ml/all/[email protected]/),这些事件"确实很成问题",即使不是恶意的。团队花了大量时间审查来自一个看似热心的贡献者的 PR:"虽然过了一段时间它开始看起来不对劲,但所有回复仍然是这样——有点奇怪,但仍然*看似合理*"。他还推测,这可能是攻击者逐步推进恶意活动的方式,类似于 XZ 后门 (https://lwn.net/Articles/967866/): > 不幸的是,对于实际的攻击来说,准备阶段可能(而且对于 Xz 攻击确实如此)看起来非常相似——一个新贡献者慢慢在社区中建立信任,提交无害的更改,并逐步积累到可以注入攻击载荷的时刻(或者如果以适当方式组合,这些更改实际上并非无害)。所以不是说这就是那种情况,但 AI 代理自动化的类似 Xz 的渗透尝试可能看起来和我们刚刚看到的非常相似。 Chris Adams 表示 (https://lwn.net/ml/all/[email protected]/),应该检查对 Anaconda 的提交并可能立即恢复。Kolman 回复 (https://lwn.net/ml/all/[email protected]/) 说它已经被恢复 (https://github.com/rhinstaller/anaconda/commit/1a27b78b061202c250539dc79a8f1b48fbdb68be)。他还确认 (https://lwn.net/ml/all/[email protected]/) LLM 生成的 PR 已经被包含在 5 月 26 日的 Anaconda 45.5 (https://github.com/rhinstaller/anaconda/releases/tag/anaconda-45.5) 版本中。它们在 6 月 2 日的 Anaconda 45.6 (https://github.com/rhinstaller/anaconda/releases/tag/anaconda-45.6) 版本中被恢复。 这些目标确实表明这可能是某种攻击的前奏;一个操作系统安装程序、一个用于提升用户权限的工具、以及一个用于与构建系统交互的工具,似乎都是插入恶意软件或劫持系统的有前景的途径。 令人不安的是,一个看起来像 AI 代理的东西在获得人类贡献者账户的访问权限后取得了如此大的成功。似乎一个拥有与项目互动合法历史的账户的 AI 代理,有很大机会说服繁忙的维护者接受有问题的贡献。幸运的是,Williamson 在问题恶化之前发现了它。让我们希望其他人类维护者也能如此警觉。 ---

相似文章

AI正在摧毁开源,而它甚至还不够优秀

Jeff Geerling

本文讨论了AI生成的代码和代理AI如何以低质量的拉取请求和错误报告淹没开源维护者,导致像curl这样的项目取消漏洞赏金,并导致维护者受到骚扰。