
Per-distro mitigation scripts for CVE-2026-31431 ("Copy Fail") Linux kernel LPE.
Скрипты смягчения последствий для каждого дистрибутива для CVE-2026-31431 («Copy Fail») — локального повышения привилегий в Linux-ядре algif_aead, затрагивающего практически все дистрибутивы, выпущенные с 2017 года.
Каждый скрипт либо устанавливает пропатченное ядро из репозиториев вашего дистрибутива (когда оно доступно), либо, если его нет, добавляет в чёрный список уязвимый модуль ядра algif_aead, чтобы путь эксплуатации был закрыт до тех пор, пока вы не перезагрузитесь на исправленное ядро.
Выберите скрипт для вашего дистрибутива, проверьте его, запустите от имени root.
# Ubuntu
sudo bash scripts/ubuntu.sh
# Debian
sudo bash scripts/debian.sh
# RHEL / Rocky / AlmaLinux / CentOS Stream
sudo bash scripts/rhel.sh
# Fedora
sudo bash scripts/fedora.sh
# Arch
sudo bash scripts/arch.sh
# openSUSE Leap / Tumbleweed
sudo bash scripts/opensuse.sh
# Alpine
sudo bash scripts/alpine.sh
# Всё остальное (Gentoo, NixOS, неизменяемые дистрибутивы, ...)
sudo bash scripts/universal.sh
Сначала используйте --check, если хотите предварительный просмотр, который ничего не меняет.
Скрипты для конкретных дистрибутивов выполняют этот алгоритм; universal.sh пропускает шаги 4–5.
sudo, если вы ещё не root.--force.uname -r.PATCHED_KERNEL_VERSION указан для вашего дистрибутива и ваше текущее ядро не ниже него, скрипт удаляет оставшийся файл смягчения и завершает работу.--yes для пропуска) установить его. После установки вы перезагружаетесь вручную./etc/modprobe.d/cve-2026-31431.conf с blacklist algif_aead и install algif_aead /bin/true, затем проверяет через зонд привязки сокета AF_ALG, что путь эксплуатации закрыт.PATCHED_KERNEL_VERSION = PENDING означает, что сопровождающие ещё не зафиксировали исправленную версию ядра для этого дистрибутива. Каждая строка обновляется через PR из одной строки.
| Дистрибутив | Пакет ядра | Пропатченная версия | Последняя проверка |
|---|---|---|---|
| Ubuntu (24.04) | linux-image-generic | PENDING | 2026-05-01 |
| Debian | linux-image-amd64 | PENDING | 2026-05-01 |
| RHEL / Rocky / Alma | kernel | PENDING | 2026-05-01 |
| Fedora | kernel | PENDING | 2026-05-01 |
| Arch | linux | PENDING | 2026-05-01 |
| openSUSE | kernel-default | PENDING | 2026-05-01 |
| Alpine | linux-lts | PENDING | 2026-05-01 |
| Флаг | Значение |
|---|---|
-y, --yes | Неинтерактивный режим; пропустить запрос на установку ядра. |
--force | Обойти проверку несоответствия дистрибутива. |
--check | Предварительный просмотр только для чтения; показать, что произойдёт, ничего не меняя. |
--undo | Удалить /etc/modprobe.d/cve-2026-31431.conf. Используйте после установки пропатченного ядра. |
-h, --help | Информация об использовании. |
Скрипты запускают этот зонд автоматически. Чтобы проверить самостоятельно:
python3 - <<'PY'
import socket, errno
try:
s = socket.socket(socket.AF_ALG, socket.SOCK_SEQPACKET, 0)
s.bind(("aead", "authencesn(hmac(sha1),cbc(aes))"))
print("BAD: bind succeeded — host is NOT mitigated")
s.close()
except OSError as e:
print(f"OK: bind blocked, errno={e.errno} ({e.strerror})" if e.errno == errno.ENOENT
else f"INCONCLUSIVE: errno={e.errno}")
PY
Смягчённый или пропатченный хост выводит OK: bind blocked, errno=2 ....
После того как ваш дистрибутив опубликует исправленное ядро и вы перезагрузитесь на него, удалите чёрный список modprobe, чтобы приложения, легально использующие AF_ALG aead, снова могли работать:
sudo bash scripts/<ваш-дистрибутив>.sh --undo
Когда ваш дистрибутив публикует исправленное ядро:
scripts/<дистрибутив>.sh — установите PATCHED_KERNEL_VERSION на исправленную версию пакета (в формате, который возвращают dpkg-query -W / rpm -q VERSION-RELEASE / pacman -Q).<дистрибутив>: fix shipped in <версия>.Инструментарий для смягчения угроз безопасности. Проверяйте любой скрипт, найденный в интернете, прежде чем передавать его в sudo bash. Сопровождающие не несут ответственности в рамках лицензии MIT.
MIT.