亲爱的 deepin 用户与社区伙伴们:
近期,APT 包管理器被发现存在一个可绕过软件包完整性校验的漏洞。在特定条件下,处于网络中间位置的攻击者可以把自己构造的软件包替换到已经通过校验的软件包位置,进而以 root 权限执行任意代码。
APT 是系统更新流程的必经环节,一旦被利用影响范围极大,建议所有用户尽快升级。
漏洞信息
漏洞编号: CVE-2026-109518
漏洞描述:APT 在跟随 HTTP 重定向时,可能将两个不同的软件包下载合并到同一个目标文件;当下载中断后重试(断点续传)时,对目标文件硬链接的复用处理不当,使"校验"与"使用"之间出现时间差(TOCTOU)。攻击者可在此窗口内替换已通过校验的软件包内容,最终安装的软件包与已校验的软件包并不一致,从而在无需合法签名的情况下绕过校验边界。该问题由 Max Justicz 报告。
漏洞等级: ⚠️⚠️⚠️ 高危(CVSS v4.0 7.7)
利用条件:
-
攻击者处于网络中间位置(同一局域网、恶意代理或被劫持的镜像站);
-
软件源通过 HTTP 访问,且客户端跟随重定向;
-
Acquire::Retries配置非 0。
利用成功后,攻击者安装的软件包将以 root 权限运行。截至目前,未发现在野利用。
影响范围
所有未更新本次修复的 deepin 25 用户,建议立即更新升级。
修复进展
deepin 25:
apt 已升级至 2.8.4deepin1,包含上游安全更新:下载方法改为以独占方式(O_EXCL)打开目标文件,杜绝两次下载共享并合并到同一文件。同时一并修复 5 处越界访问问题:
-
deb:修剪 control 段换行时的无符号下溢; -
gpgv:PushEntryWithKeyID越过字符串终止符; -
debDebFileParser:拒绝缺少Version字段的.deb包; -
srvrec:拒绝超出缓冲区长度的res_query响应; -
tagfile:修复Fill()尾部换行检查中的无界回溯扫描。
请通过 控制中心 更新,或使用终端命令升级:
sudo apt update && sudo apt dist-upgrade
更新完成后可用 apt --version 确认版本为 2.8.4deepin1。本次更新无需重启系统。
请注意: 下载新版 apt 的动作仍由旧版 apt 执行,本次更新建议在可信网络下完成。若暂时无法升级,可临时执行
sudo apt -o Acquire::Retries=0 update关闭下载重试,以消除一个必要利用条件——此为临时缓解,不能替代更新。

English 