CVE: CVE-2026-82331
Продукт: Ubuntu
Дата публикации: 23.09.2026
Критичность: CRITICAL
CVSS: 9.8 (3.1)
EPSS: 0,42%; процентиль 34,09%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
В Ubuntu затронут пакет buildstream. Ошибка — improper link resolution before file access (CWE-59) в tar source plugin Apache BuildStream при работе на Python < 3.12.
Злоупотребление позволяет вредоносным исходным tarball'ам записывать файлы на хосте через symlink escape с привилегиями пользователя, запускающего BuildStream.
В Ubuntu OSV указаны версии buildstream 1.4.1-1 для focal, 1.6.1-1 для jammy и 1.6.9-1 для noble; рекомендован апгрейд до 2.8.1.
Основные характеристики
Риск связан с нарушением границы доверия при извлечении исходных tarball'ов: BuildStream на Python < 3.12 не блокирует выход symlink'а за пределы целевого каталога, что даёт запись файлов на хосте.
- Тип ошибки: improper link resolution before file access, CWE-59
- CVSS v3.1:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, 9.8 CRITICAL
- Вектор атаки: удалённый, без необходимости авторизации и взаимодействия пользователя
- Факт эксплуатации: не подтверждён в предоставленных источниках
- EPSS: 0,42% (percentile 34,09%)
Какие продукты и версии затронуты
В Ubuntu OSV зафиксированы следующие дистрибутивы и пакеты:
- Ubuntu 20.04 LTS (focal): buildstream 1.4.1-1, python3-buildstream 1.4.1-1
- Ubuntu 22.04 LTS (jammy): buildstream 1.6.1-1, python3-buildstream 1.6.1-1
- Ubuntu 24.04 LTS (noble): buildstream 1.6.9-1, python3-buildstream 1.6.9-1
Указанные версии относятся к пакету
buildstream в Debian-based репозиториях Ubuntu.Официальная страница Ubuntu: CVE-2026-82331.
Причина уязвимости
Уязвимость находится в tar source plugin Apache BuildStream, который извлекает исходные tarball'ы во время сборки.
При работе на Python < 3.12 plugin использует механизм link following без достаточной проверки целевого пути после разрешения symlink'а.
Синклинк внутри tarball может указывать на путь вне ожидаемого каталога извлечения, и BuildStream следует этому пути при записи файла.
Python >= 3.12 в связке с BuildStream >= 2.3.0 применяет
tarfile filter functionality, которая блокирует symlink escape. В Ubuntu OSV не указано конкретное исправление внутри пакетов focal/jammy/noble до версии 2.8.1; рекомендован апгрейд до 2.8.1.Как работает атака
Атакующий подготавливает вредоносный исходный tarball, содержащий symlink'ы с путями вне целевого каталога извлечения.
BuildStream на уязвимой версии при source fetching разрешает symlink и пишет файл по указанному пути.
Запись происходит с привилегиями пользователя, запускающего BuildStream.
Целевым результатом может быть создание или перезапись файлов в доступных пользователю каталогах: конфигурации, скрипты, файлы сборки, временные объекты.
Если BuildStream запускается в CI/CD или build-окружении с доступом к артефактам, запись может затронуть последующие этапы сборки и дистрибуцию.
Python >= 3.12 + BuildStream >= 2.3.0 использует
tarfile filter, который блокирует выход symlink'а за пределы целевого каталога.Условия успешной эксплуатации
Для успешной эксплуатации необходимы следующие условия:
- Система с установленным пакетом buildstream из Ubuntu OSV: focal 1.4.1-1, jammy 1.6.1-1 или noble 1.6.9-1
- BuildStream работает на Python < 3.12 или не применяет
tarfilefilter functionality
- Атакующий способен предоставить или подменить исходный tarball для проекта BuildStream
- Tarball содержит symlink'ы с путями вне целевого каталога извлечения
- Запись файлов возможна в каталогах, доступных пользователю, запускающему BuildStream
Если проект использует только доверенные источники и фиксирует SHA256 hash отслеживаемого tarball, влияние ограничивается доверием к самому содержимому tarball.
Ubuntu OSV отмечает, что build output не может быть доверен при использовании недоверенных источников.
Возможный сценарий атаки
Сценарий основан на подтверждённой механике из описания CVE.
Атакующий получает доступ к каналу поставки исходного tarball для элемента BuildStream или подменяет его в репозитории/CI-контексте.
Tarball содержит symlink'ы, указывающие на пути вне целевого каталога извлечения.
BuildStream на уязвимой версии разрешает symlink и записывает файл по внешнему пути с привилегиями пользователя.
Запись может затронуть файлы сборки, конфигурационные объекты или временные артефакты.
Если BuildStream запускается в CI/CD, последующие этапы сборки могут использовать модифицированные файлы.
Python >= 3.12 + BuildStream >= 2.3.0 блокирует symlink escape через
tarfile filter functionality.Есть ли публичный эксплойт
В предоставленных источниках не указано наличие публичного эксплойта, PoC или подтверждённой эксплуатации CVE-2026-82331.
Отсутствие сведений в NVD, Ubuntu OSV и FIRST EPSS не означает отсутствие эксплойта.
Техническое описание достаточно для понимания механики: tar source plugin на Python < 3.12 следует symlink'ам вне целевого каталога при извлечении.
Рекомендуемый способ защиты — апгрейд до BuildStream 2.8.1 или использование окружения с Python >= 3.12 и BuildStream >= 2.3.0, где
tarfile filter блокирует symlink escape.Признаки эксплуатации
Специфичных IOC для CVE-2026-82331 в предоставленных источниках не указано.
Ниже приведены общие точки контроля; они неспецифичны и требуют корреляции с контекстом системы:
- Непредвиденные файлы или symlink'ы вне каталогов сборки BuildStream
- Изменения временных файлов в CI/CD окружениях, где запускается BuildStream
- Записи в файловой системе с привилегиями пользователя, запускающего BuildStream
- Аномальные изменения конфигурационных файлов или скриптов сборки
- Новые исполняемые объекты в каталогах, доступных пользователю BuildStream
- Изменения SHA256 hash отслеживаемых tarball'ов при отсутствии авторизованного обновления проекта
Как обнаружить атаку
Для обнаружения атаки используйте следующие методы:
- Проверка версии пакета buildstream через
apt-cache policy <имя-пакета>
- Мониторинг файловой системы в каталогах сборки и временных артефактов BuildStream
- Контроль изменений symlink'ов и файлов вне целевых каталогов извлечения
- Проверка SHA256 hash отслеживаемых tarball'ов для обнаружения подмены
- Анализ журналов CI/CD на аномальные изменения артефактов после source fetching
- Использование
ubuntu-security-statusдля проверки статуса уязвимостей системы
Команды:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замени
<имя-пакета> на buildstream или python3-buildstream в зависимости от проверяемого пакета.Как проверить свою версию
Проверка версии Ubuntu и пакетов buildstream:
Bash:
cat /etc/os-release
uname -r
apt-cache policy <имя-пакета>
ubuntu-security-status
Замени
<имя-пакета> на buildstream или python3-buildstream.Ожидаемые результаты:
- Ubuntu 20.04 LTS: buildstream 1.4.1-1
- Ubuntu 22.04 LTS: buildstream 1.6.1-1
- Ubuntu 24.04 LTS: buildstream 1.6.9-1
Если версия ниже 2.8.1 и Python < 3.12, система уязвима.
Python >= 3.12 + BuildStream >= 2.3.0 уже применяет
tarfile filter functionality.Исправление
Рекомендуемые меры:
- Апгрейд buildstream до версии 2.8.1
- Переход на Python >= 3.12, если это возможно в окружении сборки
- Использование BuildStream >= 2.3.0 с
tarfilefilter functionality
- Ограничение источников элементов BuildStream только доверенными репозиториями
- Фиксация SHA256 hash отслеживаемых tarball'ов для предотвращения MITM
- Пересборка артефактов из чистых исходников после обновления
Ubuntu OSV указывает severity medium, но CVSS v3.1 — CRITICAL 9.8.
Официальная страница Ubuntu: CVE-2026-82331.
Временные меры защиты
Пока не выполнен апгрейд до 2.8.1:
- Ограничьте использование BuildStream только для доверенных исходных tarball'ов
- Фиксируйте SHA256 hash отслеживаемых tarball'ов
- Изолируйте CI/CD окружение, где запускается BuildStream
- Ограничьте права пользователя, запускающего BuildStream, на минимально необходимые каталоги
- Мониторинг файловой системы в каталогах сборки и временных артефактов
- Пересмотрите источники элементов проекта и удалите недоверенные репозитории
Эти меры снижают влияние, но не устраняют уязвимость.
Python >= 3.12 + BuildStream >= 2.3.0 блокирует symlink escape через
tarfile filter functionality.Как проверить устранение уязвимости
После обновления проверьте:
- Версию buildstream:
apt-cache policy <имя-пакета>
- Версию Python:
python3 --version
- Наличие
tarfilefilter functionality в BuildStream >= 2.3.0
- Отсутствие уязвимых версий через
ubuntu-security-status
- Пересборку артефактов из чистых исходников
Ожидаемый результат: buildstream 2.8.1 или выше, Python >= 3.12 или BuildStream >= 2.3.0 с активным
tarfile filter.Замените
<имя-пакета> на buildstream.Вывод
CVE-2026-82331 — уязвимость link following в tar source plugin Apache BuildStream на Python < 3.12.
В Ubuntu затронуты focal, jammy и noble с версиями buildstream 1.4.1-1, 1.6.1-1 и 1.6.9-1.
Риск — запись файлов на хосте через symlink'ы из вредоносных tarball'ов с привилегиями пользователя BuildStream.
Основной способ защиты — апгрейд до 2.8.1 или использование Python >= 3.12 + BuildStream >= 2.3.0.
Дополнительно ограничьте источники и фиксируйте SHA256 hash tarball'ов.
Официальные источники
История обновлений статьи
- 25.09.2026 — Опубликована первая версия материала.
- 26.09.2026 — Уточнены сведения об уязвимых версиях, оценке риска или исправлении.
Последнее редактирование:
