CVE-2026-109518 в APT: подмена пакета через MITM даёт root в Debian и Ubuntu
В APT закрыта уязвимость, позволяющая при перехвате трафика подсунуть неверифицированный пакет и получить root. Выпущено 13 исправлений — для всех веток за последние 10 лет, обновления есть в Debian, Ubuntu и Deepin.
Что случилось
6 ноября 2026 года вышли корректирующие выпуски пакетного менеджера APT, устраняющие уязвимость CVE-2026-109518. Проблема позволяет обойти проверку при загрузке файлов и выполнить свой код с правами root. Исправления охватывают 13 выпусков — все ветки, сформированные за последние десять лет, начиная с 1.2.x.
Детали
Уязвимость эксплуатируется при перехвате HTTP-трафика между машиной и репозиторием во время установки пакета. Атакующий добивается установки подменённого варианта, который не прошёл проверку по хэшу, и получает привилегии суперпользователя. Точки входа — скомпрометированные зеркала, прокси-серверы, точки доступа Wi-Fi и шлюзы провайдера.
- в конфигурации по умолчанию уязвимы Debian 12 и новее, Ubuntu 22.04 и новее;
- более старые версии — только при значении Acquire::Retries больше нуля;
- обновления пакетов уже сформированы для Debian, Ubuntu и Deepin;
- причина — некорректная работа с жёсткими ссылками: в патче открытие файла с флагом FileFd::Empty (O_TRUNC) заменено на FileFd::Exclusive (O_EXCL);
- судя по патчу, при возобновлении прерванной загрузки атакующий мог перезаписать данные, хэш которых уже был проверен при первой попытке.
В отчёте об уязвимости детали не раскрываются, поэтому остаётся неизвестным, какие именно условия нужны для успешной атаки помимо контроля над каналом. Обычно APT скачивает пакет во временный файл, проверяет его и только потом переносит на место, а при обрыве связи докачивает остаток — именно этот сценарий и обходится. Жёсткие ссылки нужны, чтобы не копировать файл лишний раз при переносе из кэша: на диске остаются два имени одного набора данных, и ошибка в работе с ними открыла путь к перезаписи уже проверенного файла.
Что это значит
Уязвимость бьёт по самой основе доверия к пакетам: хэш проверяется, но логика докачки позволяет эту проверку обойти. Обновиться нужно до следующего планового окна обслуживания, а не ждать его: атака предполагает перехват именно HTTP-трафика, а не HTTPS.
Практические шаги: обновить пакет apt и перезапустить обновление списков, проверить значение Acquire::Retries в конфигурации и в файлах репозиториев — ненулевое значение оставляет старые системы уязвимыми, а зеркала по возможности перевести на HTTPS. Тринадцать выпусков означают, что исправление получили и давно не обновлявшиеся ветки вплоть до 1.2.x: обновлять придётся не только свежие серверы, но и старые стенды, которые обычно живут без внимания. В корпоративной сети перехват такого трафика реален через прокси и captive portal, поэтому рассчитывать на «у нас свой канал» не стоит.
Комментарии 0
Комментариев пока нет — будьте первым.
Оставить комментарий
Имя и текст — этого достаточно. Комментарий появится сразу; подозрительные сообщения уходят на проверку.