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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/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, с обнаружением только для чтения и идемпотентным применением.

Репозиторий

Популярное

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

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

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

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

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

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, поэтому первый системный вызов эксплойта завершается неудачей. Нет доступной поверхности — нет повышения привилегий.

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

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

    root@kitploit:~
    # 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. Разверните на остальной парк партиями
    

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

    root@kitploit:~
    ═══════════════════════════════════════════
    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.
    

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

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

    root@kitploit:~
    # 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, поэтому повторные запуски ничего не меняют.

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

    root@kitploit:~
    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 — проектное бюро электроники, Монпелье, Франция.

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