APT в Debian и Ubuntu: CVE-2026-109518 позволяет подменить пакет и получить root

Менеджер пакетов APT, на котором держатся Debian, Ubuntu и их производные, получил исправление уязвимости CVE-2026-109518. Атакующий, способный влиять на HTTP-трафик между клиентом APT и сервером архива, мог установить подконтрольный ему пакет без проверки — и выполнить код с правами root. Debian раскрыла проблему 4 ноября, авторство находки приписывают исследователю безопасности Max Justicz. Ubuntu оценила уязвимость как High с CVSS 7.7. Исправления выпустили оба дистрибутива.

Как работает атака: редиректы и повторные загрузки

Корень проблемы — в обработке HTTP-редиректов и докачки прерванных загрузок. В рекомендациях Debian сказано прямо: APT может объединить две разные загрузки пакетов после того, как HTTP-редирект даёт им один и тот же URI. Некорректная работа с файлами при возобновлении HTTP-загрузки позволяет атакующему «человек посередине» заменить пакет уже после проверки — с выполнением произвольного кода от root.

Разработчики APT описали механику подробнее: эксплуатируются редиректы и временные ошибки HTTP-сервера, которые запускают повторные попытки загрузки. В результате APT перезаписывает существующие жёсткие ссылки выбранным атакующим содержимым. Поскольку пакеты Debian устанавливаются с правами root, удачная подмена пакета означает выполнение произвольного кода от root.

Ubuntu формулирует требования к позиции атакующего как on-path: он должен манипулировать трафиком между клиентом пакетов и сервером архива. Такую позицию даёт вредоносное зеркало или прокси, но атака требует ещё и определённых условий загрузки.

Кто подвержен: решает настройка Acquire::Retries

Уязвимость работает, только если параметр APT Acquire::Retries не равен нулю. По словам разработчиков APT, такое значение стало умолчанием с версии 2.3.2, хотя на старых установках повторные попытки могли включить скрипты. Ubuntu уточняет: значение по умолчанию, три попытки, действует начиная с Debian 12 (Bookworm) и Ubuntu 22.04 LTS (Jammy Jellyfish). Более старые выпуски по умолчанию не подвержены, но остаются уязвимыми, если повторные попытки включили вручную.

Проверить конфигурацию можно через apt-config dump — админ ищет в выводе строку с Acquire::Retries. Ненулевое значение на непропатченной системе означает, что машина в зоне риска.

Какие версии закрыты

Debian 13 (Trixie) исправлена в APT 3.0.4, Debian 12 (Bookworm) — в версии 2.6.2. Ubuntu выпустила пропатченные пакеты для поддерживаемых выпусков, включая 22.04 LTS, 24.04 LTS и 26.04 LTS. Ubuntu 26.10 тоже была затронута, исправление опубликовали вместе с рекомендацией Ubuntu от 4 ноября.

Само исправление закрывает ошибку работы с файлами. В коммите от 12 октября разработчик APT Julian Andres Klode изменил код загрузки: файлы назначения теперь открываются эксклюзивно, а существующие файлы удаляются (unlink) перед копированием частично загруженного содержимого. Это не даёт загрузке писать через существующие жёсткие ссылки и перенаправлять запись в непредусмотренные файлы.

Что делать администратору

Ubuntu рекомендует обновить APT и на время устранения последствий временно отключить повторные попытки. Второй совет — использовать для загрузки пакетов HTTPS: он защищает от манипуляций трафиком в этом сценарии атаки.

Для корпоративных команд безопасности приоритет такой: выявить уязвимые установки, проверить конфигурацию повторов и убедиться, что пропатченные пакеты дошли до продакшена и до Linux-образов, из которых разворачиваются системы. Последний пункт легко упустить: обновлённый сервер рядом с устаревшим golden image ничего не решает — новые машины приедут с той же дырой.

Похожий разбор подмены пакета в APT уже был в материале о предыдущей уязвимости Debian и Ubuntu. А тем, кто отвечает за CI/CD, стоит помнить: цепочка поставки ломается не только в пакетном менеджере — недавняя критическая уязвимость GitLab с CVSS 10.0 напоминает, что сборочный сервер сам по себе лакомая цель.

Частые вопросы

Кого касается CVE-2026-109518?

Всех, кто ставит пакеты через APT на Debian, Ubuntu и производных дистрибутивах, если в системе включены повторные попытки загрузки. На Debian 12 и Ubuntu 22.04 LTS и новее они включены по умолчанию.

Как проверить, включены ли повторные попытки?

Выполните apt-config dump и найдите строку Acquire::Retries. Если значение больше нуля, а система не обновлена, она уязвима.

Что делать, если обновиться прямо сейчас нельзя?

Ubuntu советует на время устранения временно отключить повторные попытки и перейти на HTTPS для загрузки пакетов — это защищает от манипуляций трафиком в данном сценарии.

Нужен ли атакующему доступ к серверу?

Нет. Достаточно позиции on-path — возможности влиять на трафик между клиентом APT и сервером архива. Такую позицию даёт, например, вредоносное зеркало или прокси.

Атака срабатывает всегда?

Нет. Нужны определённые условия загрузки: редирект или временная ошибка HTTP-сервера, запускающая повтор, и ненулевое значение Acquire::Retries.

Чем грозит успешная эксплуатация?

Выполнением произвольного кода с правами root: пакеты Debian устанавливаются от root, поэтому подмена пакета после проверки равносильна полному контролю над машиной.

Кто нашёл уязвимость?

Debian приписала находку исследователю безопасности Max Justicz. По его словам, на поиск zero-day с помощью ИИ у него ушло два часа.

Исправления уже вышли?

Да. Debian 13 (Trixie) закрыта в APT 3.0.4, Debian 12 (Bookworm) — в 2.6.2. Ubuntu выпустила пакеты для поддерживаемых выпусков, включая 22.04 LTS, 24.04 LTS и 26.04 LTS, а также для 26.10.

Источник: csoonline.com