CVE-2026-87874 в Ubuntu: RCE через memcached, уязвимые версии и защита

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): ansible 1.5.4+dfsg-1ubuntu0.1~esm3, ansible-fireball, ansible-node-fireball.
  • Ubuntu 16.04 LTS (ESM): ansible 2.0.0.2-2ubuntu1.3+esm6, ansible-fireball, ansible-node-fireball.
  • Ubuntu 18.04 LTS (ESM): ansible 2.5.1+dfsg-1ubuntu0.1+esm5.
  • Ubuntu 20.04 LTS (ESM): ansible 2.9.6+dfsg-1ubuntu0.1~esm3.
  • Ubuntu 22.04 LTS: ansible-core 2.12.0-1ubuntu0.1.
  • Ubuntu 22.04 LTS (ESM): ansible 2.10.7+merged+base+2.10.8+dfsg-1ubuntu0.1~esm4.
  • Ubuntu 24.04 LTS: ansible 9.2.0+dfsg-0ubuntu5, ansible-core 2.16.3-0ubuntu2.
  • Ubuntu 26.04 LTS: ansible 13.1.0+dfsg-1ubuntu1, ansible-core 2.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 и отключить плагин, если он не используется. Мониторинг и проверка целостности контроллера помогут обнаружить признаки эксплуатации.

Официальные источники​


  1. NVD — CVE-2026-87874
  2. Ubuntu OSV — CVE-2026-87874
  3. FIRST EPSS — CVE-2026-87874

История обновлений статьи​


  • 14.09.2026 — Опубликована первая версия материала.
 
Назад
Верх Низ