Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-2026-31431-ansible — Ansible playbook для обнаружения и применения смягчения параметров ядра для CVE-2026-31431 (Copy Fail) на парках Debian/Ubuntu/RHEL, с обнаружением только для чтения и идемпотентным применением. | Kitploit
Инструменты/GitHubGitHub/aestechno/cve-2026-31431-ansible
Безопасность облачной инфраструктурыСканеры уязвимостейАудит конфигурацииDevSecOps
GitHubaestechno/cve-2026-31431-ansible

cve-2026-31431-ansible

Ansible playbook для обнаружения и применения смягчения параметров ядра для CVE-2026-31431 (Copy Fail) на парках Debian/Ubuntu/RHEL, с обнаружением только для чтения и идемпотентным применением.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
3225 месяцев назадЕщё не проверено
Поделиться

CVE-2026-31431 («Copy Fail») — рецепт смягчения для Ansible

CI

Обнаружение и применение смягчения через параметры ядра для CVE-2026-31431 («Copy Fail») на парке машин Debian / Ubuntu / RHEL-family с помощью Ansible.

Эта CVE — локальная уязвимость повышения привилегий в интерфейсе algif_aead AF_ALG ядра Linux. Любой непривилегированный локальный пользователь — включая служебные учётные записи, такие как www-data, mysql, или процессы внутри скомпрометированного через RCE веб-приложения — может за несколько системных вызовов довести её до root. Ошибка затрагивает все основные дистрибутивы, выпущенные с 2017 года.

Что делает этот рецепт

  • Обнаруживает, на каких хостах отсутствует смягчение. По умолчанию только чтение.
  • Применяет универсальное смягчение — добавляет initcall_blacklist=algif_aead_init в командную строку ядра — при запуске с -e apply_mitigation=true.
  • Никогда не перезагружает автоматически. Перезагрузка — решение оператора.

Чёрный список через командную строку ядра работает как для встроенных (RHEL-family), так и для модульных (Debian/Ubuntu) конфигураций, в отличие от часто упоминаемого обходного пути modprobe blacklist algif_aead.

Как работает смягчение

algif_aead_init() — это функция ядра, которая регистрирует алгоритм aead AF_ALG в подсистеме крипто-сокетов при загрузке. Параметр командной строки initcall_blacklist=algif_aead_init указывает ядру пропустить этот initcall. Уязвимый код по-прежнему присутствует в бинарнике ядра, но socket(AF_ALG, ..., "aead") возвращает ENOENT, поэтому первый системный вызов эксплойта завершается неудачей. Нет доступной поверхности — нет повышения привилегий.

Когда вендоры выпустят пропатченные ядра и вы перезагрузитесь в них, смягчение больше не нужно, и его можно удалить.

Быстрый старт

# 1. Обнаружение (только чтение) — формирует отчёт о состоянии по каждому хосту
ansible-playbook -i inventory check_cve_2026_31431.yml

# 2. Сначала примените смягчение на одном хосте (без автоматической перезагрузки)
ansible-playbook -i inventory --limit <ip-or-host> \
  -e apply_mitigation=true check_cve_2026_31431.yml

# 3. Перезагрузите этот хост через ваш обычный механизм

# 4. Повторное обнаружение; убедитесь, что «Mitigation active: yes»

# 5. Разверните на остальной парк партиями

Отчёт уязвимого хоста выглядит так:

═══════════════════════════════════════════
Host:               192.168.1.42
Distro:             Ubuntu 24.04
Kernel:             6.8.0-60-generic
Mitigation active:  no
Mitigation staged:  no
═══════════════════════════════════════════
⚠️  192.168.1.42: CVE-2026-31431 mitigation is NOT active.

Откат после выхода пропатченного ядра

Вне рамок этого рецепта. Ручные однострочники:

# Debian / Ubuntu
sudo sed -i 's/ initcall_blacklist=algif_aead_init//' /etc/default/grub
sudo update-grub
sudo reboot

# RHEL family
sudo grubby --update-kernel=ALL --remove-args="initcall_blacklist=algif_aead_init"
sudo reboot

Поведение без сбоев

Путь обнаружения строго только для чтения (uname, чтение /proc/cmdline, чтение /etc/default/grub, grubby --info=ALL). Проверки используют failed_when: false, чтобы неожиданный вывод никогда не прерывал плейбук. ignore_unreachable: true означает, что недостижимые хосты получают понятное предупреждение «UNREACHABLE — treat as VULNERABLE» вместо сбоя запуска.

Путь применения обёрнут в block/rescue, чтобы один проблемный хост никогда не останавливал остальные. Правка grub идемпотентна и ограничена условием mitigation_staged, поэтому повторные запуски ничего не меняют.

Тестирование

bash tests/run-checks.sh all

Этапы: lint (yamllint + ansible-lint) → syntax (ansible-playbook --syntax-check) → dry-run (выполняет плейбук в режиме --check против localhost с -c local, оба пути — обнаружение и применение). Тот же скрипт вызывается матрицей GitHub Actions на контейнерах debian:12, ubuntu:22.04, ubuntu:24.04 и almalinux:9 при каждом push и pull request.

Что dry-run не проверяет:

  • Он не изменяет grub, не запускает update-grub и не инициирует перезагрузку.
  • /proc/cmdline внутри CI-контейнера показывает командную строку хоста-раннера, а не контейнера, поэтому mitigation_active в выводе CI бессмысленен. CI доказывает, что плейбук выполняется чисто; он не доказывает, что хост смягчён.

Подробнее см. tests/README.md.

Источники

  • Help Net Security — CVE-2026-31431
  • CloudLinux — mitigation & fixed kernel versions
  • Ubuntu — CVE-2026-31431
  • Debian Security Tracker — CVE-2026-31431
  • Tenable FAQ — Copy Fail
  • CERT-EU SA 2026-005

Благодарности

Уязвимость обнаружена Taeyang Lee (Theori) и превращена в полноценную цепочку эксплойтов командой Xint Code Research Team, которой и принадлежит заслуга в том, что сообщество безопасности обратило на это внимание. Этот рецепт лишь автоматизирует смягчение, которое они рекомендовали.

Лицензия

Beerware. См. LICENSE. TL;DR: делайте с этим что хотите; если мы когда-нибудь встретимся — купите мне пива.

Мейнтейнер

AESTECHNO — Hugues Orgitello — проектное бюро электроники, Монпелье, Франция.

Скачать инструмент