11 月 4 日,Debian(DSA-6607-1)和 Ubuntu(USN-8996-1)同时修复了软件包管理器 APT 本身的一个漏洞 CVE-2026-109518,由 Max Justicz 发现。Debian 公告的说法是:APT 在 HTTP 重定向让两个不同的软件包下载得到同一个地址时,会把它们合并;断点续传时文件处理不当,中间人可以在软件包通过校验之后再把它换掉,最终以 root 身份执行任意代码。Ubuntu 给它的 CVSS v4 评分是 7.7。
谁受影响
- 攻击者需要能篡改 APT 和软件源之间的 HTTP 流量,NVD 的描述里明确包括恶意镜像和代理。Debian、Ubuntu 的官方源默认走 HTTP,平时靠签名和哈希校验防篡改,这个漏洞绕过的正是校验之后那一步。
- 利用需要 APT 跟随重定向并重试下载,也就是
Acquire::Retries不为 0。这个值从 Debian 12 和 Ubuntu 22.04 起默认就是 3,所以这两个版本及以后的默认配置都受影响;更早的版本默认不受影响,但如果脚本里自己设置过重试,同样要修。 - 同一次 Debian 更新还修了几处越界访问问题。
修复版本和做法
- Ubuntu:22.04 升到 apt
2.4.15ubuntu0.1,24.04 升到2.8.4ubuntu0.1,26.04 升到3.2.1ubuntu0.1,26.10 升到3.3.3ubuntu0.1;20.04 及更早的版本通过 Ubuntu Pro 的 ESM 提供。 - Debian:13(trixie)升到
3.0.4,12(bookworm)升到2.6.2(DLA-4880-1)。 - 用
apt-cache policy apt看已安装的版本。升级 apt 这一步本身还是用旧 apt 下载的;在 oss-security 邮件列表上转发这条公告的研究者提到,升级前把Acquire::Retries设为 0 可以缓解,所以稳妥的做法是sudo apt -o Acquire::Retries=0 update,再sudo apt -o Acquire::Retries=0 install --only-upgrade apt。
顺手做的两件事
一是看看软件源配置里有没有来历不明的第三方镜像或代理,能用 HTTPS 的源尽量用 HTTPS;二是这类「装软件就被下毒」的供应链风险不只出在 APT,9 月 npm 的 ChainDrop 蠕虫就是另一种,见这篇报道。系统版本怎么选、哪个版本还在支持期,见VPS 操作系统怎么选和Ubuntu 22.04 支持期限;如果担心之前已经被人动过,按入侵排查检查。