Уязвимость CVE-2026-109518 в APT позволяет получить права root в Debian и Ubuntu

2026-11-05 80 комментарии
В пакетном менеджере APT для Debian, Ubuntu и производных систем обнаружена уязвимость CVE-2026-109518 с оценкой 7,7 балла по CVSS 4.0. Ошибка позволяет перехватить HTTP-трафик при повторной загрузке пакета и выполнить произвольный код с правами root. Опубликованы таблицы исправленных версий и команды безопасного обновления

4 ноября 2026 года компания Canonical и разработчики Debian раскрыли уязвимость CVE-2026-109518 в пакетном менеджере APT. Ошибка получила оценку 7,7 балла по шкале CVSS 4.0 и позволяет перехватить обновление по протоколу HTTP для запуска произвольного кода с правами суперпользователя (root). По умолчанию проблема затрагивает дистрибутивы, начиная с Debian 12 и Ubuntu 22.04 LTS. Обновления безопасности уже вышли для восьми поддерживаемых выпусков Ubuntu и стабильных веток Debian.

Как работает подмена пакета в CVE-2026-109518

Уязвимость обнаружил исследователь безопасности Макс Джастич (Max Justicz). В основе ошибки лежат два механизма, которые в базе NIST NVD отнесены к категориям CWE-62 (работа с жёсткими ссылками UNIX) и CWE-367 (состояние гонки между временем проверки и временем использования, TOCTOU).

Во время загрузки обновлений по незашифрованному протоколу HTTP атакующий на пути трафика (On-Path / MitM) или администратор вредоносного зеркала может перенаправить запросы. Если после HTTP-перенаправления два разных пакета получают одинаковый адрес URI, транспортный модуль APT ошибочно объединяет их скачивание при повторной попытке соединения. В результате повторного использования жёстких ссылок злоумышленник подменяет содержимое файла пакета .deb уже после того, как менеджер пакетов проверил криптографическую подпись и контрольную сумму. Поскольку установка пакетов в системе выполняется с правами администратора, подменённый пакет запускает произвольный код от имени root.

Состояние гонки TOCTOU (Time-of-Check to Time-of-Use) – класс программных ошибок, при которых система проверяет безопасность файла или ресурса, но до момента его фактического использования содержимое успевает измениться. В случае с APT криптографическая проверка проходит для одного набора данных, а на установку попадает файл, перезаписанный в ходе повторной докачки.

Для успешной атаки должны совпасть три условия. Во-первых, соединение с репозиторием должно идти по HTTP без шифрования TLS (или через скомпрометированный прокси-сервер). Во-вторых, клиент должен следовать HTTP-перенаправлениям. В-третьих, в настройках APT должен быть включён повтор загрузки при сбое, за который отвечает параметр Acquire::Retries со значением больше нуля. В базовом коде APT разработчики закрыли ошибку за счёт эксклюзивного режима открытия целевых файлов в модулях загрузки (methods/*.cc), а также добавили отбраковку пакетов без обязательного поля Version.

Какие условия и настройки защищают систему по умолчанию

Параметр Acquire::Retries со значением 3 включён по умолчанию начиная с Debian 12 «Bookworm» и Ubuntu 22.04 LTS «Jammy Jellyfish». Более старые выпуски в стандартной конфигурации не уязвимы, так как в них число повторных попыток равно нулю. Как отмечают разработчики APT, во многих старых системах или сценариях автоматизации администраторы могли задать ненулевое значение вручную, поэтому патчи выпустили и для прошлых серий.

Проблема находится в HTTP-модуле библиотеки APT и затрагивает любые консольные и графические надстройки, включая apt, apt-get, aptitude, Synaptic и встроенные центры приложений. Установка и обновление программ в формате Snap не подвержены этой ошибке, так как демон snapd использует собственную инфраструктуру доставки пакетов. Также уязвимость не затрагивает репозитории, подключённые по протоколу HTTPS или FTP.

Официальные архивы пакетов защищены цифровыми подписями, но до установки патча недобросовестное HTTP-зеркало может обойти эту проверку за счёт ошибки при докачке. После обновления клиентской библиотеки APT скомпрометированные зеркала теряют такую возможность. Ранее, в январе 2019 года, Макс Джастич уже находил в HTTP-транспорте APT схожую критическую уязвимость CVE-2019-3462, которая также позволяла выполнить код от имени root через подмену данных при перенаправлении.

Исправленные версии APT для Ubuntu и Debian

Ниже приведена сводная таблица исправленных версий пакета apt по данным официального уведомления USN-8996-1 от компании Canonical. В список вошли восемь выпусков: четыре актуальных дистрибутива со стандартной поддержкой (включая Ubuntu 26.04 LTS и промежуточный выпуск Ubuntu 26.10) и четыре старые LTS-ветки, получающие патчи по подписке Ubuntu Pro (ESM).

Выпуск UbuntuСтатус по умолчаниюИсправленная версия aptКанал доставки
Ubuntu 26.10 (Stonking Stingray)Уязвим (Retries = 3)3.3.3ubuntu0.1Стандартные обновления
Ubuntu 26.04 LTS (Resolute Raccoon)Уязвим (Retries = 3)3.2.1ubuntu0.1Стандартные обновления
Ubuntu 24.04 LTS (Noble Numbat)Уязвим (Retries = 3)2.8.4ubuntu0.1Стандартные обновления
Ubuntu 22.04 LTS (Jammy Jellyfish)Уязвим (Retries = 3)2.4.15ubuntu0.1Стандартные обновления
Ubuntu 20.04 LTS (Focal Fossa)Не уязвим (Retries = 0)2.0.12+esm1Ubuntu Pro (ESM)
Ubuntu 18.04 LTS (Bionic Beaver)Не уязвим (Retries = 0)1.6.19+esm1Ubuntu Pro (ESM)
Ubuntu 16.04 LTS (Xenial Xerus)Не уязвим (Retries = 0)1.2.36+esm1Ubuntu Pro (ESM)
Ubuntu 14.04 LTS (Trusty Tahr)Не уязвим (Retries = 0)1.0.1ubuntu2.24+esm4Ubuntu Pro (ESM)

Начиная с Ubuntu 16.04 LTS в системе по умолчанию работает служба автоматических обновлений unattended-upgrades. Она проверяет и устанавливает патчи безопасности каждые 24 часа. Подписка Ubuntu Pro бесплатна для личного использования на пяти компьютерах (или до 50 машин для активных участников сообщества).

Команда безопасности Debian опубликовала бюллетени DSA 6607-1 и DLA-4880-1, а также обновила статус пакетов на странице Debian Security Tracker. Помимо закрытия CVE-2026-109518, в новых сборках для Debian разработчики устранили несколько ошибок чтения и записи за пределами буфера памяти (out-of-bounds access) и ошибку сортировки в решателе зависимостей.

Ветка DebianУязвимая версияИсправленная версияПримечание
Debian 13 «Trixie» (Stable)3.0.33.0.4Обновление по бюллетеню DSA 6607-1
Debian 12 «Bookworm» (Oldstable LTS)2.6.12.6.2Обновление по бюллетеню DLA-4880-1
Debian Unstable «Sid»3.3.53.3.6Исправлено в нестабильной ветке
Debian Testing «Forky»3.3.5Ожидает переноса 3.3.6На момент анонса оставалась версия 3.3.5
Debian 11 «Bullseye»До 2.2.52.2.5 (в базовом коде)Поддержка LTS завершилась 31 августа 2026 года

В стабильном выпуске Debian 13 «Trixie» менеджер пакетов перешёл на ветку APT 3.0, поэтому для него предназначена сборка 3.0.4. Разработчики также подготовили версию 2.2.5 для ветки Debian 11, хотя её официальная долгосрочная поддержка завершилась в конце августа 2026 года. На дату публикации бюллетеня CISA не включала CVE-2026-109518 в каталог активно эксплуатируемых уязвимостей (KEV).

Как безопасно обновить APT и включить HTTPS

Поскольку сам процесс скачивания патча на неисправленной системе может стать мишенью для атаки в ненадёжной сети, инженеры Canonical рекомендуют временно принудительно отключить повторные попытки загрузки при обновлении пакетов APT:

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

Для классических систем Debian и производных дистрибутивов без расширенного синтаксиса поиска можно обновить сам менеджер пакетов напрямую из доверенной сети с тем же защитным флагом:

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

Чтобы проверить установленные версии всех пакетов, собранных из исходного кода apt, выполните команду:

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

В качестве дополнительной меры защиты администраторы могут полностью отключить повторные попытки загрузки в конфигурации системы или перевести списки репозиториев с HTTP на HTTPS. В современных выпусках Ubuntu и Debian адреса зеркал хранятся в файлах /etc/apt/sources.list или /etc/apt/sources.list.d/ubuntu.sources (и debian.sources), где префикс http:// можно заменить на https:// при условии, что выбранное зеркало поддерживает шифрование TLS.

Вывод

Уязвимость CVE-2026-109518 представляет наибольшую опасность для ноутбуков в публичных сетях Wi-Fi, а также для серверов и сред сборки контейнеров, которые загружают пакеты через общие кеширующие прокси или сторонние HTTP-зеркала. Владельцам систем на базе Debian 12, Debian 13, Ubuntu 22.04 LTS и более новых выпусков (включая Linux Mint, Pop!_OS и Kubuntu) следует установить обновление APT с флагом Acquire::Retries=0 и сверить номер сборки с таблицей.

Читаете нас в Google? Добавьте Comss.ru в источникиДобавьте Comss.ru в источники Google
Новые статьи будут чаще в «Главных новостях» Google. Без подписок и уведомлений, отключается в один клик. Нужен вход в аккаунт Google.Наши статьи будут чаще в «Главных новостях». Нужен вход в Google.
Добавить в Google
© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте