
Обнаруживает подверженность уязвимости CVE-2026-31431 (Copy Fail) и при необходимости устраняет её, отключая уязвимый модуль ядра algif_aead, предоставляя вердикты и статус исправления.
Обнаружение подверженности уязвимости CVE-2026-31431 (Copy Fail) и, при необходимости, применение смягчения на уровне хоста путём отключения модуля ядра algif_aead на уязвимых системах.
copyfail-check.sh — проверяет статус патча ядра, подверженность во время выполнения и состояние смягчения.--mitigate.NOT AFFECTED, PATCHED, NOT EXPLOITABLE, MITIGATED, MITIGATED (REBOOT PENDING) или AFFECTED.| Свойство | Значение |
|---|---|
| CVE ID | CVE-2026-31431 |
| Серьёзность | ВЫСОКАЯ (CVSS 3.1: 7.8) |
| Компонент | algif_aead — криптографический интерфейс ядра AF_ALG AEAD |
| Тип атаки | Локальное повышение привилегий; побег из контейнера (публичного PoC пока нет) |
| Подверженные ядра | 4.14 и новее (см. ниже) |
| Раскрыта | 2026-04-29 |
Оптимизация AEAD на месте 2017 года (коммит 72548b093ee3, ядро 4.14) позволяет непривилегированному локальному атакующему получить контролируемый примитив записи в page-cache для любого читаемого файла, что даёт возможность повышения привилегий до root. В контейнерных средах тот же примитив может способствовать побегу из контейнера.
Ядра до 4.14 НЕ подвержены. Это включает ядро 3.13 Ubuntu (Trusty 14.04 GA) и ядро 4.4 (Xenial 16.04 GA, Trusty HWE) — они предшествуют уязвимому коммиту.
| Роль | Коммит |
|---|---|
| Внесение уязвимости | 72548b093ee3 (ядро 4.14, 2017) |
| Исправление — mainline / ядро 7.0 | a664bf3d603d |
| Исправление — stable 6.18.x | fafe0fa2995a |
| Исправление — stable 6.19.x | ce42ee423e58 |
Дистрибутивы переносят патчи с собственными идентификаторами коммитов. Скрипт ищет CVE ID в журналах изменений пакетов, что надёжнее, чем хеши из апстрима для ядер с бэкпортами.
| Выпуск | linux kernel | смягчение kmod (исправленная версия) |
|---|---|---|
| Trusty 14.04 | только ядра 4.15; 3.13 и 4.4 НЕ подвержены | 15-0ubuntu7+esm1 |
| Xenial 16.04 | только ядра 4.15; 4.4 НЕ подвержен | 22-1ubuntu5.2+esm1 |
| Bionic 18.04 | Подвержен | 24-1ubuntu3.5+esm1 |
| Focal 20.04 | Подвержен | 27-1ubuntu2.1+esm1 |
| Jammy 22.04 | Подвержен | 29-1ubuntu1.1 |
| Noble 24.04 | Подвержен | 31+20240202-2ubuntu7.2 |
| Questing 25.10 | Подвержен | 34.2-2ubuntu1.1 |
| Resolute 26.04 | Не подвержен | Обновление не требуется |
Команда безопасности Ubuntu распространяет обновление пакета kmod, которое записывает install algif_aead /bin/false в /etc/modprobe.d/disable-algif_aead.conf. Этот скрипт создаёт тот же файл с тем же содержимым и полностью совместим с этим подходом. Применение официального обновления пакета (sudo apt install --only-upgrade kmod) — рекомендуемый путь в Ubuntu; этот скрипт обеспечивает эквивалентное покрытие для систем, отличных от Ubuntu, или для предварительной проверки до обновления.
chmod +x copyfail-check.sh
sudo ./copyfail-check.sh # только обнаружение
sudo ./copyfail-check.sh --mitigate # обнаружение + применение смягчения, если система подвержена
Передайте скрипт напрямую из main и выполните его. Форма bash -s -- передаёт аргументы после -- в сам скрипт, поэтому --mitigate попадает в скрипт, а не в bash.
# Только обнаружение
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
# Обнаружение + смягчение
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
Эквиваленты с wget:
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash
wget -qO- https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/main/copyfail-check.sh | sudo bash -s -- --mitigate
Примечание по безопасности. Передача удалённого скрипта напрямую в привилегированную оболочку доверяет тому, что URL отдаёт в момент выполнения. Для разовой проверки это приемлемо; для повторного или производственного использования зафиксируйте конкретный коммит и сначала просмотрите скрипт:
curl -fsSL https://raw.githubusercontent.com/Webhosting4U/Copy-Fail_Detect_and_mitigate_CVE-2026-31431/<commit-sha>/copyfail-check.sh -o copyfail-check.sh less copyfail-check.sh sudo bash copyfail-check.sh --mitigate
NOT AFFECTED/sys/kernel/livepatch/, а также kpatch list и canonical-livepatch statusubuntu-security-status --cves, dnf updateinfo list cves, zypper patch-checkalgif_aead (modinfo) и состояние загрузки (lsmod)/etc/modprobe.d/ — принимаются эквивалентные нейтрализаторы (install … /bin/false|/bin/true|/sbin/nologin) и blacklist; определяется, исходит ли блокировка из пакета kmod Ubuntu/proc/modules (колонка 3); также отмечается ссылка на движок OpenSSL afalg в /etc/ssl или /etc/pki/tls| Вердикт | Значение |
|---|---|
NOT AFFECTED | Ядро предшествует 4.14, либо пропатчено и модуль недоступен |
PATCHED | Журнал изменений/инструменты ядра подтверждают наличие исправления |
NOT EXPLOITABLE | Модуль недоступен в этой системе |
MITIGATED | Модуль заблокирован через modprobe.d; ядро всё ещё не пропатчено — обновите, когда возможно |
MITIGATED (REBOOT PENDING) | Блокировка записана, но модуль всё ещё загружен; выгрузите с помощью rmmod или перезагрузитесь |
AFFECTED | Ядро находится в уязвимом диапазоне, и algif_aead доступен |
При использовании --mitigate на подверженной системе скрипт:
/etc/modprobe.d/disable-algif_aead.conf, содержащий install algif_aead /bin/falsealgif_aead, если он загруженИмя файла /etc/modprobe.d/disable-algif_aead.conf совпадает с файлом, записываемым официальным обновлением пакета kmod Ubuntu, поэтому оба подхода взаимозаменяемы и совместимы.
algif_aead безопасно для распространённых криптографических путей: dm-crypt, LUKS, kTLS, IPsec, стандартное использование OpenSSL/GnuTLS, SSH и криптография keyring ядра не затрагиваются.afalg, потеряют аппаратное ускорение; они должны переключиться на программную криптографию, но для запуска переключения может потребоваться перезагрузка.| Дата | Событие |
|---|---|
| 2026-03-23 | Сообщено команде безопасности ядра Linux |
| 2026-04-01 | Исправление внесено в mainline |
| 2026-04-29 | Публичное раскрытие |
sudo или root-оболочка)uname, modinfo, lsmod, awk, grepdpkg — сканирование журнала изменений Debian/Ubuntu и проверка версии kmodlsb_release — определение выпуска Ubuntu для подсказки kmodrpm — сканирование журнала изменений RHEL/Fedorakpatch / canonical-livepatch и /sys/kernel/livepatch/ — обнаружение live-patchubuntu-security-status, dnf updateinfo, zypper patch-check — инструменты CVE дистрибутива.
├── copyfail-check.sh
└── README.md