Новости · Архиваторы

GNU tar: уязвимость TOCTOU при восстановлении инкрементных бэкапов (CVE-2026-18477)

2 ноября 2026 в базах уязвимостей опубликована CVE-2026-18477 — гонка состояний (TOCTOU) в GNU tar версий до 1.35 включительно. Баг затрагивает восстановление инкрементных бэкапов: локальный атакующий с доступом к резервируемым данным может подставить вредоносный путь так, что tar создаст, переименует или перезапишет файл вне целевой папки. Red Hat, Debian и Astra Linux уже выпустили патчи.

2 ноября 2026 Редакция LoadFile Чтение 5 мин
Абстрактная иллюстрация гонки состояний TOCTOU: расходящиеся стрелки часов над разветвляющимися путями файлов

Коротко: 2 ноября 2026 опубликована CVE-2026-18477 — гонка состояний TOCTOU (Time-of-Check Time-of-Use) в GNU tar при обработке инкрементных бэкапов, затрагивающая версии до 1.35 включительно. Проблема обнаружена исследователем 31 июля 2026 года и касается механизма переименования записей dumpdir, который tar использует при восстановлении архивов с опцией --listed-incremental. Уязвимость оценена как средняя по серьёзности (CVSS 3.1: 4.4), но требует внимания администраторов Linux-серверов: Red Hat, Debian и Astra Linux уже выпустили исправленные пакеты.

Что случилось

GNU tar — стандартный архиватор, который используется для резервного копирования практически на всех дистрибутивах Linux. Одна из его возможностей — инкрементные бэкапы: вместо полной копии каждый раз tar сохраняет только изменённые файлы, а служебная информация о переименованиях и удалениях хранится в специальной структуре, которую внутри кода называют dumpdir.

CVE-2026-18477 — это ошибка именно в обработке такой структуры при восстановлении. Запись в dumpdir, помеченная меткой «X», отвечает за операцию переименования пути во время распаковки архива. Между моментом, когда tar проверяет состояние целевого пути, и моментом, когда он фактически выполняет переименование, возникает временное окно — и в этом окне путь можно подменить.

Как работает атака TOCTOU

Если атакующий имеет возможность писать в директорию, которую регулярно бэкапит tar, он готовит такое содержимое, что при следующем инкрементном снимке в dumpdir попадает управляемая им запись-переименование. Позже, когда этот бэкап восстанавливают на той же или на другой системе, к которой у атакующего тоже есть доступ, он успевает подменить путь в узком окне между проверкой и использованием — и tar создаёт, переименовывает или перезаписывает файл за пределами ожидаемой папки распаковки.

!
Важно

Атака требует двух условий сразу: доступа на запись в резервируемые данные и доступа к системе, где бэкап восстанавливают. Это не удалённая уязвимость в духе «присланный файл — и сервер взломан», а сценарий для многопользовательских серверов и общих систем бэкапа, где за процессы резервного копирования и восстановления отвечают разные учётные записи.

Именно поэтому CVSS-оценка умеренная — 4.4 по шкале 3.1, а не критическая: эксплуатация требует конкретных условий доступа, а не просто скачанного архива. Но для админов, которые настраивают --listed-incremental на серверах с несколькими пользователями, риск реален: итог атаки — перезапись произвольных файлов вне каталога восстановления, что в отдельных сценариях может привести и к повышению привилегий.

Кого касается уязвимость

Под угрозой — все системы с GNU tar версии 1.35 и ниже, которые используют инкрементные бэкапы через --listed-incremental. Это практически все актуальные дистрибутивы Linux: Red Hat Enterprise Linux (8, 9 и 10), Debian и производные, включая российскую Astra Linux. Обычных пользователей, которые просто распаковывают .tar.gz-архивы из интернета, эта уязвимость не касается напрямую — она про серверные сценарии резервного копирования, а не про открытие отдельных файлов.

Что делать: обновление и патчи

Для Red Hat Enterprise Linux 8 исправление вышло в пакете tar версии 2:1.30-13.el8_10 (RHSA-2026:70390), для RHEL 9 — в RHSA-2026:61581, для RHEL 10 — в RHSA-2026:61586. Astra Linux закрыла проблему в пакете tar 1.34+dfsg-1+deb11u1.astra5 и новее. Debian отслеживает исправление через свой security tracker по тому же идентификатору CVE.

  1. Проверьте версию tar командой tar --version — уязвимы сборки на базе 1.35 и более ранних.
  2. Обновите пакет tar через менеджер пакетов дистрибутива (apt, dnf, yum) до версии, где закрыта CVE-2026-18477.
  3. Если инкрементные бэкапы восстанавливает отдельная учётная запись или сервис, убедитесь, что у неё нет лишнего доступа на запись в каталоги, откуда ранее снимался бэкап.

Почему это важно, если вы просто архивируете файлы

Если вы используете tar только локально — упаковать папку в .tar.gz для переноса на другой компьютер, — этот конкретный баг для вас не актуален: он проявляется только в сценарии «инкрементный бэкап на сервере плюс отдельный процесс восстановления». Но история показательна: за 2026 год в утилитах для работы с tar-архивами нашли сразу несколько проблем безопасности — от патчей в модуле tarfile Python до критической бреши в npm-пакете node-tar, где крошечный архив мог положить сервер. Формат tar старый и широко используется именно в автоматизированных конвейерах — поэтому такие уязвимости регулярно всплывают именно в серверной обвязке, а не в десктопных программах просмотра. Подробнее о проверке файлов перед распаковкой — в разделе безопасность файлов.

Источники

Читайте также