漏洞概述
安全研究员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延长支持服务。
关注微信号:智享开源 ,及时了解更新信息。
还没有任何评论,你来说两句吧!