
Предоставляет безопасные скрипты обнаружения и исправления ядра для CVE-2026-31431 — повышения привилегий в ядре Linux через algif_aead. Включает проверки только на чтение, блокировку модулей и обновления только ядра.
Локальное повышение привилегий в ядре Linux через
algif_aead(AF_ALG) CVSS 7.8 HIGH | Публичное раскрытие: апрель 2026
Запустите от обычного пользователя:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/check_cve_2026_31431.sh -o check.sh && bash check.sh
Этот скрипт:
algif_aeadЗапустите от root:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/patch_cve_2026_31431.sh -o patch.sh && sudo bash patch.sh
Запустите от root, если хотите удалить Elastic Agent с сервера:
curl -fsSL https://raw.githubusercontent.com/Mrhudson69/cve-2026-31431/main/uninstall_elastic_agent.sh -o uninstall-elastic.sh && sudo bash uninstall-elastic.sh
Этот скрипт:
elastic-agent uninstall в неинтерактивном режимеЕсли вы находитесь внутри:
wg-easyВы НЕ можете пропатчить ядро хоста изнутри контейнера.
Скрипт автоматически определяет контейнеры и безопасно завершает работу.
Вы должны запустить скрипт патча на:
НЕ внутри контейнера.
Ошибка в криптоинтерфейсе algif_aead ядра Linux позволяет непривилегированному локальному пользователю повреждать содержимое page cache через операции AF_ALG.
При уязвимых конфигурациях ядра это может позволить:
Проблема затрагивает версии ядра Linux, в которых существует и доступна уязвимая логика оптимизации AEAD.
| ОС | Версии |
|---|---|
| Ubuntu | 20.04 / 22.04 / 24.04 |
| Debian | 11 / 12 / 13 |
| Proxmox VE | 6.x / 7.x / 8.x / 9.x |
| Generic Linux | Любой дистрибутив с уязвимыми ядрами |
check_cve_2026_31431.shБезопасный скрипт обнаружения, работающий только на чтение.
| Проверка | Описание |
|---|---|
| Версия ядра | Проверяет уязвимый диапазон ядра |
| Наличие патча | Пытается определить пропатченное ядро |
| Статус algif_aead | Проверяет состояние загрузки / блокировки модуля |
| Сокет AF_ALG | Тестирует доступность привязки AEAD algif_aead |
Python os.splice | Проверяет возможность эксплуатации на чистом Python |
| Экспозиция Setuid | Обнаруживает распространённые цели setuid |
| Смягчения | Проверяет AppArmor / SELinux / seccomp |
Скрипт обнаружения:
patch_cve_2026_31431.shБезопасный скрипт смягчения + обновления, затрагивающий только ядро.
Предназначен для:
uninstall_elastic_agent.shБезопасный вспомогательный скрипт для удаления Elastic Agent с Linux-сервера.
Предназначен для:
/opt/Elastic/AgentСоздаёт:
/etc/modprobe.d/cve-2026-31431-disable-algif-aead.conf
Содержимое:
blacklist algif_aead
install algif_aead /bin/false
Затем пытается выполнить:
rmmod algif_aead
Это блокирует автоматическую загрузку уязвимого модуля.
Скрипт также обновляет initramfs, когда доступен update-initramfs, чтобы блокировка надёжно переживала перезагрузку.
Перед обновлением чего-либо скрипт выполняет:
apt-get -s install --only-upgrade ...
Если ЛЮБЫЕ пакеты, не относящиеся к ядру, будут обновлены:
скрипт АВТОМАТИЧЕСКИ прерывается.
Это предотвращает случайные обновления приложений.
Скрипт обновляет только:
Никакие пакеты приложений/сред выполнения не обновляются.
Если система перезагружается, скрипт патча теперь устанавливает временную одноразовую службу systemd, которая автоматически повторно запускает фазу проверки при следующей загрузке.
Это позволяет одному запуску скрипта охватить:
Сначала самый безопасный вариант:
sudo bash patch.sh --dry-run
Это:
Рекомендуется перед развёртыванием в производственной среде.
sudo bash patch.sh --no-reboot
sudo bash patch.sh --reboot-now
С --reboot-now скрипт устанавливает хук возобновления после перезагрузки перед планированием перезапуска.
sudo reboot
Если вы используете --no-reboot или перезагружаетесь вручную позже, проверка после перезагрузки всё равно автоматически возобновится при следующей загрузке.
Скрипт разработан так, чтобы не затрагивать:
Однако:
--dry-runЖурналы патча:
/var/log/cve_2026_31431_kernel_patch.log
Проверьте работающее ядро:
uname -r
Запустите обнаружение снова:
bash check.sh
Проверьте блокировку модуля:
cat /etc/modprobe.d/cve-2026-31431-disable-algif-aead.conf
Эти скрипты предоставлены только для целей защитной безопасности и администрирования систем.
Код эксплойта не включён.
Всегда:
Используйте на свой страх и риск.
Лицензия MIT
Запись NVD CVE https://nvd.nist.gov/vuln/detail/CVE-2026-31431
Коммит исправления ядра Linux https://git.kernel.org/linus/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5
Уведомления о безопасности Ubuntu https://ubuntu.com/security
Трекер безопасности Debian https://security-tracker.debian.org/