CVE: CVE-2026-87874
Продукт: Ubuntu
Дата публикации: 09.09.2026
Критичность: HIGH
CVSS: 8.1 (3.1)
EPSS: 0,43%; процентиль 35,96%
CISA KEV: нет подтверждения в каталоге CISA KEV
Краткое описание
Ubuntu выпустила обновления для пакетов ansible и ansible-core, закрывающие CVE-2026-87874. Уязвимость позволяет злоумышленнику выполнить произвольный код на контроллере Ansible через отравление кэша memcached. Статья описывает механику атаки, затронутые версии и порядок проверки исправления.
Основные характеристики
Риск заключается в удаленном выполнении кода (RCE) на узле управления Ansible. Злоумышленник использует небезопасную десериализацию данных из кэша memcached, который не требует аутентификации и имеет предсказуемые ключи.
- Тип ошибки: CWE-502 (Deserialization of Untrusted Data). Плагин memcached в Ansible использует pickle для хранения и чтения данных, что позволяет выполнить код при чтении отравленного объекта.
- CVSS 3.1: 8.1 (HIGH). Вектор:
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. Высокая сложность атаки обусловлена необходимостью доступа к memcached и предсказания ключей.
- Условия атаки: Сетевой доступ к memcached, предсказуемость ключей кэша, использование уязвимого плагина memcached в Ansible.
- Эксплуатация: В каталоге CISA KEV не подтверждена. Публичные PoC или подтвержденные атаки в источниках не указаны.
- EPSS: 0,43% (процентиль 35,96%). Вероятность эксплуатации в ближайшие 30 дней оценивается как низкая, но риск остается из-за критичности последствий.
Какие продукты и версии затронуты
Ubuntu OSV подтверждает влияние CVE-2026-87874 на пакеты
ansible и ansible-core в следующих версиях:- Ubuntu 14.04 LTS (ESM):
ansible1.5.4+dfsg-1ubuntu0.1~esm3,ansible-fireball,ansible-node-fireball.
- Ubuntu 16.04 LTS (ESM):
ansible2.0.0.2-2ubuntu1.3+esm6,ansible-fireball,ansible-node-fireball.
- Ubuntu 18.04 LTS (ESM):
ansible2.5.1+dfsg-1ubuntu0.1+esm5.
- Ubuntu 20.04 LTS (ESM):
ansible2.9.6+dfsg-1ubuntu0.1~esm3.
- Ubuntu 22.04 LTS:
ansible-core2.12.0-1ubuntu0.1.
- Ubuntu 22.04 LTS (ESM):
ansible2.10.7+merged+base+2.10.8+dfsg-1ubuntu0.1~esm4.
- Ubuntu 24.04 LTS:
ansible9.2.0+dfsg-0ubuntu5,ansible-core2.16.3-0ubuntu2.
- Ubuntu 26.04 LTS:
ansible13.1.0+dfsg-1ubuntu1,ansible-core2.20.1-1.
Обновления доступны через стандартные репозитории Ubuntu и Ubuntu Pro для ESM-релизов.
Причина уязвимости
Причина уязвимости — несоответствие между документацией и реализацией плагина memcached в коллекции community.general Ansible. Документация утверждает, что записи хранятся в формате JSON, однако код не выполняет явную сериализацию. Вместо этого плагин полагается на библиотеку
python-memcached, которая использует pickle для записи и чтения значений.Поскольку memcached не требует аутентификации, а ключи кэша предсказуемы, злоумышленник может записать в кэш произвольный pickle-объект. При следующем чтении кэша Ansible контроллер десериализует этот объект, что приводит к выполнению кода.
Как работает атака
Атака начинается с сетевого доступа к memcached-инстансу, используемому Ansible для кэширования фактов. Злоумышленник формирует вредоносный pickle-объект, содержащий код для выполнения. Этот объект записывается в memcached под предсказуемым ключом, который Ansible использует для хранения фактов.
Когда Ansible-контроллер выполняет задачу, требующую чтения фактов из кэша, он вызывает
unpickle на данных из memcached. Python интерпретирует pickle-объект и выполняет вложенный код. В результате злоумышленник получает удаленное выполнение кода на контроллере Ansible с правами процесса Ansible.Условия успешной эксплуатации
Для успешной атаки необходимо:
- Сетевой доступ к memcached-инстансу, используемому Ansible.
- Предсказуемость ключей кэша, используемых Ansible для хранения фактов.
- Использование уязвимого плагина memcached в Ansible (версии, перечисленные в разделе «Затронутые продукты»).
- Отсутствие дополнительных механизмов защиты memcached (например, аутентификации или шифрования).
Возможный сценарий атаки
Сценарий атаки: злоумышленник получает доступ к сети, где работает memcached. Он определяет ключи, используемые Ansible для кэширования фактов. Затем он записывает в memcached вредоносный pickle-объект под одним из этих ключей.
При следующем запуске Ansible-контроллера, который пытается прочитать факты из кэша, происходит десериализация вредоносного объекта. Код выполняется на контроллере, позволяя злоумышленнику выполнить произвольные команды, установить бэкдор или получить доступ к данным.
Есть ли публичный эксплойт
В предоставленных источниках отсутствуют сведения о публичных PoC, технических описаниях эксплойтов или подтвержденных эксплуатациях CVE-2026-87874 в реальных атаках. CVE находится в статусе «Awaiting Analysis» в NVD, что означает, что анализ еще не завершен. Отсутствие данных об эксплойте не гарантирует его отсутствие, но на текущий момент публичных инструментов атаки не зафиксировано.
Признаки эксплуатации
Специфичные IOC для CVE-2026-87874 в источниках не указаны. Общие неспецифичные признаки, которые могут указывать на эксплуатацию:
- Необычная активность в memcached (запись нехарактерных ключей или значений).
- Внезапное выполнение кода на Ansible-контроллере (новые процессы, сетевые соединения).
- Изменения в файловой системе контроллера (новые файлы, модификация конфигураций).
- Аномальные записи в журналах Ansible (ошибки десериализации, неожиданные команды).
Как обнаружить атаку
Для обнаружения атаки рекомендуется:
- Мониторинг memcached: отслеживание записей в кэш, особенно под ключами, используемыми Ansible.
- Анализ журналов Ansible: поиск ошибок десериализации или выполнения нехарактерных команд.
- Контроль целостности контроллера: использование инструментов для обнаружения изменений в файловой системе и процессах.
- Сетевой мониторинг: отслеживание исходящих соединений от Ansible-контроллера, которые могут указывать на C2-каналы.
Как проверить свою версию
Для проверки версии установленных пакетов используйте:
Bash:
cat /etc/os-release
uname -r
apt-cache policy ansible
apt-cache policy ansible-core
ubuntu-security-status
Замените
<имя-пакета> на ansible или ansible-core в команде apt-cache policy, если необходимо проверить конкретный пакет. Команда ubuntu-security-status покажет, доступны ли обновления для системы.Исправление
Исправление CVE-2026-87874 в Ubuntu заключается в обновлении пакетов
ansible и ansible-core до версий, содержащих патч. Для ESM-релизов (14.04, 16.04, 18.04, 20.04, 22.04) требуется подписка Ubuntu Pro.Обновите систему:
Bash:
sudo apt update
sudo apt upgrade
Для ESM-релизов убедитесь, что подписка активна:
Bash:
sudo pro attach <токен>
sudo pro status
После обновления перезапустите Ansible-контроллер, если он запущен как сервис.
Временные меры защиты
До применения обновления можно временно снизить риск:
- Ограничьте сетевой доступ к memcached: настройте firewall, чтобы разрешить доступ только с Ansible-контроллера.
- Используйте аутентификацию memcached, если поддерживается версией.
- Отключите плагин memcached в Ansible, если он не критичен для работы.
- Регулярно очищайте кэш memcached, чтобы удалить потенциально отравленные записи.
Как проверить устранение уязвимости
После обновления проверьте версии пакетов:
Bash:
apt-cache policy ansible
apt-cache policy ansible-core
Убедитесь, что версии соответствуют исправленным (см. раздел «Затронутые продукты»). Проверьте, что memcached недоступен извне:
Bash:
ss -tlnp | grep memcached
Если memcached слушает только на
127.0.0.1 или на интерфейсе, доступном только Ansible, риск снижен. Проверьте журналы Ansible на наличие ошибок после обновления.Вывод
CVE-2026-87874 представляет серьезный риск для Ansible-контроллеров, использующих memcached для кэширования фактов. Обновление пакетов
ansible и ansible-core до исправленных версий является обязательным.Дополнительно рекомендуется ограничить доступ к memcached и отключить плагин, если он не используется. Мониторинг и проверка целостности контроллера помогут обнаружить признаки эксплуатации.
Официальные источники
История обновлений статьи
- 14.09.2026 — Опубликована первая версия материала.
