Архив рассылок сообщества снова открыт. Читать письма 2003-2009
Главная/Блог/Новости
Новости4 мин чтения5 ноября 2026

Уязвимость в APT позволяла подменить пакет после проверки подписи и выполнить код от root

Debian выпустил исправление 4 ноября. Под ударом Debian 12, Debian 13 и Ubuntu 22.04 и новее с настройками по умолчанию. Разбираем, как работает атака и что обновить.

4 ноября 2026 года Debian выпустил бюллетень DSA-6607-1 об уязвимости в менеджере пакетов APT. Ошибка получила номер CVE-2026-109518. Атакующий, который может вмешиваться в HTTP-трафик между сервером и зеркалом репозитория, подменяет пакет уже после проверки подписи, и при установке его код выполняется от root. Уязвимость нашёл Макс Юстич (Max Justicz). В 2019 году он же обнаружил в APT похожую ошибку с редиректами, CVE-2019-3462.

По данным трекера безопасности Debian, атака срабатывает, только если параметр Acquire::Retries больше нуля. В Debian 12, Debian 13 и Ubuntu 22.04 LTS и новее он по умолчанию равен 3, так что уязвимы обычные установки без особых настроек. Исправления уже вышли: APT 2.6.2 для bookworm (DLA-4880-1), 3.0.4 для trixie и 3.3.6 для unstable. О проблеме также сообщили CyberSecurityNews и Phoronix.

APT стоит не только на серверах, но и в Docker-образах, которые собираются в CI при каждом коммите. Если бэкенд вашего сайта или мобильного приложения собирает подрядчик, уточните, на какой сборке APT работают его раннеры и базовые образы и когда их пересоберут. Например, в YuSMP Group такие вопросы закрывают в регламенте сопровождения продукта.

Как устроена атака

  1. Перехват трафика. Атакующий находится между клиентом и зеркалом: в той же сети, на подставном прокси или на взломанном зеркале. Важно, чтобы загрузка шла по HTTP.
  2. Редирект и повтор. Атакующий отвечает редиректом так, что две разные загрузки получают одинаковый URI. APT повторяет скачивание и продолжает его с места обрыва.
  3. Подмена после проверки. Из-за повторного использования жёстких ссылок при докачке APT смешивает два файла. Проверку подписи проходит настоящий пакет, а на установку уходит подменённый, и его скрипты выполняются от root.

Что сделать на серверах и в CI

  • Проверьте версию: apt --version. Нужны 2.6.2 на Debian 12, 3.0.4 на Debian 13 или новее. Для Ubuntu ориентируйтесь на уведомления USN своего релиза.
  • Обновите сам APT отдельной командой, пока остальные пакеты ждут: apt-get update && apt-get install --only-upgrade apt. Делайте это из доверенной сети.
  • Переведите sources.list на HTTPS-зеркала. Перехватить и переписать TLS-трафик без доверенного сертификата атакующий не сможет.
  • Если обновиться прямо сейчас нельзя, временно отключите повторы: строка Acquire::Retries "0"; в файле /etc/apt/apt.conf.d/80-retries. После обновления её стоит убрать.
  • Пересоберите Docker-образы на свежей базе debian:bookworm/debian:trixie или ubuntu и проверьте, что CI не берёт образы из локального кэша раннера.

Про базовые меры для нового сервера мы писали в материале о защите Linux-сервера, а сборку образов в конвейере разбирали в статье о GitLab CI с нуля.

Подпись пакетов в APT по-прежнему проверяется. Ошибка в том, что после проверки устанавливался уже другой файл. Поэтому одной подписи мало: зеркала по HTTPS и свежий APT нужны вместе.

Вернуться в блог