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

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

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

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

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

Категории

Все категории
Loading categories
copyfail-mitigation — Ansible-плейбуки для аудита и устранения CVE-2026-31431 («Copy Fail»), локальной уязвимости повышения привилегий в модуле `algif_aead` ядра Linux, затрагивающей все основные дистрибутивы с 2017 года. | Kitploit
Инструменты/GitHubGitHub/mahradbt/copyfail-mitigation
Безопасность облачной инфраструктурыАнализ уязвимостейАудит конфигурацииDevSecOpsРеагирование на Инциденты
GitHubmahradbt/copyfail-mitigation

copyfail-mitigation

Ansible-плейбуки для аудита и устранения CVE-2026-31431 («Copy Fail»), локальной уязвимости повышения привилегий в модуле `algif_aead` ядра Linux, затрагивающей все основные дистрибутивы с 2017 года.

Популярное

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

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

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

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

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

CVE-2026-31431 — Copy Fail

Повышение привилегий / повреждение памяти в ядре Linux (algif_aead)
Плейбуки аудита и смягчения на базе Ansible — готовы к запуску в production


Обзор

Copy Fail (CVE-2026-31431) — это уязвимость в модуле algif_aead ядра Linux — пользовательском интерфейсе AEAD семейства крипто-сокетов AF_ALG.
Ошибка в пути copy_*user внутри обработчика запросов AEAD позволяет локальному непривилегированному пользователю повредить память ядра или повысить привилегии, создав некорректный запрос к сокету.

ПолеДетали
CVE IDCVE-2026-31431
ПсевдонимCopy Fail
КомпонентЯдро Linux — algif_aead (net/socket.c, crypto/algif_aead.c)
Вектор атакиЛокальный
Требуемые привилегииНизкие (непривилегированный пользователь)
ВоздействиеПовреждение памяти ядра / локальное повышение привилегий
ИсправленоПатч в апстриме ядра в процессе — проверьте вашего вендора дистрибутива

Затронутые системы

ДистрибутивЗатронутые версииСтатус
Ubuntu 22.04 / 24.04ядра < исправленного релизаПатч ожидается — см. Ubuntu USN
Debian 12 (Bookworm)ядра < исправленного релизаПатч ожидается
RHEL / AlmaLinux / Rocky 8 и 9ядра < исправленного релизаПатч ожидается
Amazon Linux 2 / 2023ядра < исправленного релизаПатч ожидается
Generic upstreamalgif_aead скомпилирован или авто-загружаетсяУязвим, если модуль присутствует

Система не находится в непосредственной опасности, если algif_aead не загружен и ни один пользовательский инструмент не загружает его по требованию (см. шаг 1 аудита).


Воздействие с первого взгляда

ПодсистемаЗатронута этим CVE?Затронута смягчением?
dm-crypt / LUKSНетНет
kTLSНетНет
IPsec / StrongSwanНетНет
OpenSSL (стандартная сборка)НетНет
GnuTLS / NSSНетНет
OpenSSHНетНет
OpenSSL afalg engineВозможно даДа — проверьте перед применением
Инструменты kcapi-enc / kcapi-dgstДаДа

Структура репозитория

root@kitploit:~
.
├── audit_algif_aead.yml      # Шаг 1 — аудит: обнаружение подверженности на каждом хосте
├── mitigate_copyfail.yml     # Шаг 2 — смягчение: выгрузка + блокировка модуля
└── README.md                 # Этот документ

Предварительные требования

  • Ansible ≥ 2.14 на управляющем узле
  • Коллекция community.general (ansible-galaxy collection install community.general)
  • SSH-доступ + become: true (sudo) на целевых хостах
  • lsof установлен на целевых хостах (обычно присутствует по умолчанию)

Настройка инвентаря

inventory.ini находится в gitignore — он остаётся локальным и никогда не попадает в репозиторий. inventory.ini.example — это закоммиченный шаблон, с которого все начинают.

root@kitploit:~
# Клонирование и подготовка
git clone https://github.com/your-org/copy-fail-CVE-2026-31431.git
cd copy-fail-CVE-2026-31431
cp inventory.ini.example inventory.ini

# Отредактируйте inventory.ini с вашими реальными хостами, затем выполните:
ansible-playbook -i inventory.ini audit_algif_aead.yml

Следующие пути находятся в gitignore для предотвращения утечки данных инфраструктуры:

Путь в gitignoreПочему
inventory.iniРеальные hostname / IP
inventories/Любая локальная директория инвентаря
copyfail_reports/Результаты аудита содержат версии ядра, списки процессов
.vault_passФайл пароля Ansible Vault
*.retryАртефакты повторных попыток Ansible

Шаг 1 — Аудит

Запустите плейбук аудита до любых изменений. Он собирает доказательства по каждому хосту и записывает отчёт как локально, так и на каждом целевом хосте.

root@kitploit:~
ansible-playbook -i inventory.ini audit_algif_aead.yml

Отчёты сохраняются в ./copyfail_reports/<hostname>_audit.txt.

Что проверяет аудит

ПроверкаКомандаВердикт
Версия ядраuname -rИнформационно
Модуль загружен?lsmod | grep algif_aeadЗагружен = риск подверженности
Активные сокеты AF_ALGlsof | grep AF_ALGПользователи найдены = необходимо проверить
OpenSSL afalg engineopenssl engine | grep afalgАктивен = проверить воздействие
Инструменты kcapi присутствуютwhich kcapi-*Присутствуют = потенциальные пользователи
Смягчение уже примененоstat /etc/modprobe.d/disable-algif.confПрисутствует = уже смягчено

Интерпретация вердикта

УсловиеРекомендуемое действие
Модуль НЕ загруженНизкий непосредственный риск — следите за патчем ядра
Модуль загружен, пользователей сокетов AF_ALG нетБезопасно применять смягчение
Модуль загружен и пользователи AF_ALG активныПроверьте процессы перед применением смягчения
Файл смягчения уже присутствуетСмягчение было применено ранее — проверьте

Шаг 2 — Смягчение

Сначала запустите аудит. Плейбук смягчения безопасно запускать идемпотентно, но аудит даёт вам цепочку доказательств.

root@kitploit:~
ansible-playbook -i inventory.ini mitigate_copyfail.yml

Чтобы пропустить конкретные хосты (например, хосты с подтверждённой зависимостью от kcapi):

root@kitploit:~
ansible-playbook -i inventory.ini mitigate_copyfail.yml \
  -e '{"skip_hosts": ["db-prod-01", "hsm-node-02"]}'

Что делает смягчение

  1. Создаёт /etc/modprobe.d/disable-algif.conf с install algif_aead /bin/false
  2. Выгружает модуль algif_aead из работающего ядра (перезагрузка не требуется для первоначальной защиты)
  3. Обновляет initramfs, чтобы блокировка сохранялась после перезагрузки (update-initramfs на Debian/Ubuntu, dracut --force на RHEL)
  4. Записывает журнал с отметкой времени в /var/backup/copyfail_mitigation/mitigation.log

Перезагрузка не требуется для удаления модуля из памяти.
Перезагрузка всё же рекомендуется для подтверждения действия блокировки и установления чистого состояния после смягчения.


Проверка

После завершения плейбука проверьте на любом целевом хосте:

root@kitploit:~
# Модуль НЕ должен появляться
lsmod | grep algif_aead

# Файл блокировки должен существовать и содержать строку install
cat /etc/modprobe.d/disable-algif.conf

# Ручная загрузка должна быть отклонена
sudo modprobe algif_aead   # Ожидается: FATAL: Module algif_aead not found or refused

Откат (после патча ядра)

Как только ваш вендор выпустит исправленное ядро и вы его примените:

root@kitploit:~
# На каждом хосте — удалите блокировку
sudo rm /etc/modprobe.d/disable-algif.conf

# Пересоберите initramfs
sudo update-initramfs -u        # Debian / Ubuntu
sudo dracut --force              # RHEL / CentOS / Amazon Linux

# Перезагрузитесь в исправленное ядро
sudo reboot

Ссылки

  • Консультация CERT Europa 2026-005
  • Уведомление о безопасности Ubuntu — Copy Fail
  • xint.io — Copy Fail в дистрибутивах Linux
  • Исходный код algif_aead ядра Linux

Лицензия

Выпущено под лицензией MIT.
Используйте на свой страх и риск. Всегда проверяйте в staging-среде перед применением к production-системам.


Поддерживается сообществом. Приветствуются PR и отчёты об ошибках.

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