事件概述
2026年6月11日前后,一场代号为Atomic Arch的大规模供应链攻击袭击了Arch Linux社区软件仓库AUR(Arch User Repository)。攻击者劫持了超过400个AUR软件包,篡改其构建脚本,在用户构建这些包时植入恶意载荷。该事件由安全公司Sonatype发现并命名,被认为是迄今为止影响范围最广的AUR安全事件之一。
重要提示:此次攻击仅影响AUR社区仓库,Arch Linux官方软件仓库([core]、[extra]、[multilib])未受影响。
攻击原理:利用信任模型而非软件漏洞
此次攻击并非利用任何软件零日漏洞,而是针对 AUR 的信任模型。被劫持的软件包保留了原有名称、版本历史以及用户对它们的信任,只有构建指令(PKGBUILD 或 .install 脚本)被篡改。用户构建或更新这些包时,恶意代码即在本地执行。
攻击流程如下:
劫持孤儿软件包:攻击者在 AUR 中寻找已被原维护者放弃的“孤儿”软件包,通过 AUR 的标准认领流程获得所有权。
伪装提交记录:攻击者伪造 git commit 元数据,使变更看起来像是长期维护者所为。Arch Linux 受信用户(Trusted User)事后确认,原维护者账户并未被入侵。
篡改构建脚本:在 PKGBUILD 或 .install 脚本中插入恶意命令,例如在构建过程中执行 npm install atomic-lockfile 或 bun install js-digest。这些命令会从 npm 仓库拉取恶意包及其附带的正规包作为掩护。
用户触发载荷:当用户使用 AUR 助手(如 yay、paru)或手动构建这些软件包时,恶意 npm 包中的预安装钩子(preinstall hook)会执行一个捆绑的 Linux ELF 二进制文件(名为 deps)。
已知被确认的劫持包包括 alvr 和 premake-git。受影响日期为2026年6月11日及之后安装或更新的AUR包。
恶意载荷技术分析
独立安全研究员Whanos对恶意载荷 deps 进行了逆向分析,确认其为一个用Rust编写的凭证窃取器,专门针对开发者工作站和构建系统。
窃取的信息范围
浏览器数据:来自 Chromium 内核浏览器(Chrome、Edge、Brave 等)的 Cookie、令牌、本地存储;Firefox 系浏览器的保存密码和会话。
Electron 应用会话:Slack、Discord、Microsoft Teams 等。
开发者凭证:GitHub 令牌、npm 令牌、HashiCorp Vault 令牌。
AI 服务凭证:OpenAI/ChatGPT 的 Bearer 令牌及账户元数据。
本地密钥与历史:SSH 私钥、known_hosts、Shell 历史记录。
容器凭证:Docker 凭证、Podman 凭证。
VPN 配置文件。
加密货币钱包:本地钱包文件及助记词(第二篇报道补充)。
数据回传与命令控制
持久化机制
恶意二进制会安装一个systemd服务,配置 Restart=always 确保持久运行:
eBPF Rootkit(可选,但危险)
早期部分报道夸大了 eBPF rootkit 的作用。实际情况是:
关键后果:一旦 payload 以 root 权限执行过,仅删除AUR包不足以保证系统干净。包管理器只能移除它知道的文件,无法证明存在 rootkit 能力的系统已可信。
其他潜在载荷
二进制文件还携带了一个与 monero-wallet-gui 关联的第二阶段文件,分析人员怀疑其可能是一个未深入分析的加密货币挖矿程序。将eBPF rootkit与窃取器结合的做法十分罕见,也使得本次攻击格外值得警惕。
攻击规模与第二波攻击
Sonatype最初发布的报告统计了20多个被劫持的软件包。但在24 小时内,社区追踪者和AUR邮件列表(aur-general)已将清单扩大到超过400个。一份通过grep AUR git镜像整理的清单显示约408个,且仍在增长。
恶意npm包 atomic-lockfile@1.4.2 在被移除前,Socket统计的周下载量仅为134次,说明真实暴露风险主要来自 AUR 构建路径,而非直接 npm install。
第二波攻击使用了 bun install js-digest,由另一组账户推送,但社区追踪者将其关联到与 atomic-lockfile 相同的npm发布者。其载荷是一个哈希值不同的独立ELF二进制,同样被标记为恶意。用户需同时检查 atomic-lockfile 和 js-digest 两个特征。
受影响的时间与行动建议
检查范围
如果您在2026年6月11日或之后安装或更新过任何AUR软件包,请立即采取以下措施。
一、识别可疑包
grep-r"npm install atomic-lockfile" ~/.cache/ # 根据实际构建目录调整
grep-r"bun install js-digest" ~/.cache/
grep-r"src/hooks/deps" ~/.cache/
二、若发现可疑包已执行
立即假设主机凭证已全部泄露,并轮换以下所有内容:
浏览器会话(Cookie 与保存的密码)
SSH 私钥
GitHub、npm 令牌
Slack、Teams、Discord 会话
Vault 令牌
Docker、Podman 凭证
云服务访问密钥
任何可能存在于环境变量中的 API 令牌
三、排查持久化与 rootkit
systemctl list-units --type=service --all|grep-v"loaded active"
ls ~/.config/systemd/user/
检查可疑文件:/var/lib/ 下是否有未知文件。
检查 BPF 映射:ls /sys/fs/bpf/ 中是否存在 hidden_pids、hidden_names、hidden_inodes。
检查网络连接:ss -tunap 或 lsof -i 中是否有到 Tor 节点或 temp.sh 等上传服务的可疑外连。
四、如果软件包以 root 权限执行过
假设 rootkit 已植入。由于 eBPF rootkit 可以隐藏自身及恶意进程,无法在受感染系统上获得可信的检测结果。唯一可靠的恢复方式是:
五、预防未来攻击
技术指标(IOC)
主载荷 SHA-256:6144d433f8a0316869877b5f834c801251bbb936e5f1577c5680878c7443c98b
恶意 npm 包:atomic-lockfile@1.4.2、js-digest
C2 方式:Tor 洋葱服务(具体 onion 地址参见 ioctl.fail 完整分析报告)
上传服务:temp.sh
历史回溯与系统性风险
类似的手法曾在 2018 年出现(一个废弃的 PDF 阅读器包被劫持)。2026 年的版本将规模大幅扩大,属于更广泛的供应链攻击趋势:攻击者不再依赖“域名仿冒(typosquatting)”欺骗用户,而是直接劫持被遗弃但仍有用户基数的合法项目,继承其信任。
目前该事件没有分配 CVE 编号。Sonatype 将其追踪为 Sonatype-2026-003775,CVSS 评分 8.7(高危)。
对AUR生态的启示
本次攻击之所以成功,根源在于 AUR 仍然主要依据软件包的名称和历史来信任它,而非当前的维护者身份。一个近期被认领的包,或者突然新增安装钩子的包,现在应被视为与陌生人提供的包同样可疑。
Arch Linux安全团队已采取紧急措施:
最终建议:对于任何AUR用户,请立即执行上述检查。如果您的系统曾被恶意包以root权限感染,请做好从零重装的准备。传统的防病毒和常规检测手段对此类攻击基本无效,因为恶意行为完全发生在受信任的构建流程之内。