APT高危漏洞CVE-2026-109518:中间人攻击可窃取root权限

Mark Do · · 27 次阅读 · 教程文章

漏洞概述

安全研究员Max Justicz发现并负责任地披露了APT(Debian、Ubuntu及衍生Linux发行版使用的包管理器)中的一个高危安全漏洞。该漏洞已被分配CVE编号,严重程度评级为高风险。

位于网络路径上的攻击者若能篡改系统与应用仓库服务器之间的HTTP流量,即可触发安装恶意控制的.deb安装包,从而在目标系统上获取root权限。目前,我们已为所有受影响的Ubuntu版本发布安全更新。Ubuntu 22.04 LTS(Jammy Jellyfish)及更新版本默认受影响;较旧版本仅在Acquire::Retries配置项设为非零值时才会受影响。

该漏洞CVSS 4.0评分为7.7分,属于高危级别(CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N)。

漏洞存在于APT库调用的HTTP后端模块中,会影响所有基于APT的前端工具,包括apt、apt-get、aptitude以及Ubuntu的图形化包管理应用。

需要注意的是,通过snap安装的软件不受影响,因为snap使用的是完全不同的包管理机制。

如果通过HTTPS协议使用TLS加密传输,则可有效防范此漏洞,因为利用该漏洞需要攻击者篡改HTTP流量。后续内容将说明如何为APT流量启用HTTPS。其他传输协议(如FTP)不受此漏洞影响。

此漏洞的利用前提是客户端尝试重试失败的下载任务,该行为由Acquire::Retries配置项控制。若将其设为0,系统将不会重试下载,漏洞也就无法被利用。该配置项仅在Ubuntu 22.04 LTS(Jammy Jellyfish)及更新版本中默认设为非零值。

哪些Ubuntu版本受影响?

版本代号 源码包名称 修复状态
Trusty (14.04 LTS) apt 已在1.0.1ubuntu2.24+esm4中修复
Xenial (16.04 LTS) apt 已在1.2.36+esm1中修复
Bionic (18.04 LTS) apt 已在1.6.19+esm1中修复
Focal (20.04 LTS) apt 已在2.0.12+esm1中修复
Jammy (22.04 LTS) apt 已在2.4.15ubuntu0.1中修复
Noble (24.04 LTS) apt 已在2.8.4ubuntu0.1中修复
Resolute (26.04 LTS) apt 已在3.2.1ubuntu0.1中修复
Stonking (26.10) apt 已在3.3.3ubuntu0.1中修复

如何检查是否受影响

将系统中已安装的APT源包版本号与上表中的版本号进行对比即可:

apt list --installed '?source-package(^apt$)'

漏洞影响分析

攻击者仅在目标系统尝试安装.deb包时才能利用此漏洞。位于网络路径上的攻击者若能操控APT客户端与仓库服务器之间的HTTP通信,便可将下载的包文件替换为恶意版本。通常情况下,仓库签名验证机制能够有效防御此类攻击。然而,该漏洞允许攻击者诱骗APT在签名验证失败的情况下仍继续安装恶意包。

当系统安装.deb包时,会以内置root权限执行包内的脚本。因此,安装来源不明的软件是极为危险的行为,极易导致系统被完全接管。官方明确不建议安装不可信的包,这可能导致整个系统沦陷。攻击者可利用此途径在目标系统上获取root权限。

同样,恶意包镜像站也可利用此漏洞向目标系统分发未签名的恶意包。虽然仓库签名机制通常能够保障镜像站的安全性,但用户在终端系统上更新APT客户端库后,已遭篡改的镜像站将不再构成威胁。

启用TLS加密传输

如果您对所选Ubuntu仓库服务器的网络路径存在安全顾虑,可以启用TLS作为缓解措施。在漏洞修复完成后,启用TLS仅作为未来预防手段。仓库签名验证机制仍是更可靠的完整性保护措施,提供端到端的验证保障,而不仅仅是传输过程中的保护。

然而,在无法完全排除中间人攻击风险的环境中,建议在安装安全更新前先启用TLS,确保整个过程中不存在可利用漏洞的时间窗口。

要启用TLS,需要修改APT的源配置文件,将所有http://地址替换为https://。配置文件位于/etc/apt/sources.list以及/etc/apt/sources.list.d/目录下的补充文件,文件格式可以是新的DEB22格式的.sources文件,也可以是传统的.list文件。

可使用以下命令将所有指向Ubuntu仓库的HTTP URL批量替换为HTTPS:

sudo sed -Ei 's!http://((([a-z]+.)?archive|security|ports).ubuntu.com)!https://1!' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources

请注意,上述命令不会修改指向其他镜像站或软件仓库的URL。执行后请运行更新命令并确保无报错(部分镜像站可能不支持HTTPS):

sudo apt update

需要注意,部分社区运营的镜像站(包括一些国家/地区的专属镜像站)尚不支持HTTPS。

虽然启用TLS可有效防御中间人攻击者利用此漏洞,但我们强烈建议您按照下文所述方式安装安全更新。

如何修复CVE-2026-109518

在安装安全更新期间,临时将Acquire::Retries设为0,可有效防止漏洞被利用——无论是来自中间人攻击还是恶意镜像站。

我们建议您升级所有软件包:

sudo apt update && sudo apt upgrade -o Acquire::Retries=0

如果无法一次性升级所有包,可单独升级受影响组件:

sudo apt update && sudo apt install -o Acquire::Retries=0 --only-upgrade '?source-package(^apt$)'

Ubuntu 16.04 LTS及以上版本默认启用unattended-upgrades功能,该服务会自动执行以下操作:

  • 每24小时自动应用最新的安全更新。
  • 若您已启用此功能,上述补丁将在发布后24小时内自动完成安装。

Ubuntu 26.10、26.04 LTS、24.04 LTS和22.04 LTS通过标准支持获得修复。如果您使用的是Ubuntu 20.04 LTS或更早版本,Ubuntu Pro订阅可提供长达15年的安全保障。Ubuntu 20.04 LTS和18.04 LTS受扩展安全维护(ESM)覆盖,而Ubuntu 16.04 LTS和14.04 LTS则需要启用ESM配合LTS延长支持服务。


关注微信号:智享开源 ,及时了解更新信息。

阅读原文

Mark Do

关注我的头条 不要放弃,百折不挠,坚强、自信。

还没有任何评论,你来说两句吧!

发表评论