
Python-эксплойт для CVE-2026-31431 — локальное повышение привилегий в ядре Linux через AF_ALG и splice() для записи в page cache, получение root на arm64 и x86.
| Элемент | Содержание |
|---|---|
| Идентификатор CVE | CVE-2026-31431 |
| Название уязвимости | Copy Fail |
| Тип уязвимости | Локальное повышение привилегий в ядре Linux (LPE) |
| Оценка CVSS 3.1 | 7.8 (ВЫСОКАЯ) |
| CWE | CWE-669: Incorrect Resource Transfer Between Spheres |
| Затронутые системы | Все ядра Linux, собранные с 2017 года по апрель 2026 года |
| CISA KEV | Добавлен в список, крайний срок исправления 2026-05-15 |
| Дата публикации | 2026-04-29 |
В 2017 году в криптографический модуль algif_aead ядра была добавлена оптимизация шифрования на месте (in-place optimization). Эта оптимизация приводила к тому, что страницы page-cache ошибочно помещались в доступный для записи целевой scatterlist. Используя комбинацию сокета AF_ALG и системного вызова splice(), атакующий может записывать данные в page cache произвольных файлов, включая файлы, доступные только для чтения и принадлежащие root.
Цепочка атаки: AF_ALG socket → splice() → примитив записи в page-cache → подмена page cache setuid-бинарника → выполнение этого файла для получения прав root
Особенности атаки:
| Дистрибутив | Затронутая версия ядра |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
Дистрибутивы Debian, Arch, Fedora, Rocky, Alma, Oracle и другие с аналогичным диапазоном версий ядра также затронуты.
Все версии ядра ниже указанных исправленных версий считаются уязвимыми:
uname -r
Сравните вывод с исправленными версиями из таблицы выше. Если версия ниже исправленной — система уязвима.
# Проверка наличия активных подключений AF_ALG
lsof | grep AF_ALG
# Проверка состояния сокетов AF_ALG
ss -xa | grep alg
lsmod | grep algif_aead
Если есть вывод — модуль загружен, существует риск эксплуатации.
# Клонирование репозитория с PoC
git clone https://github.com/cx330zer0/CVE-2026-31431-Copy-Fail-add-arm64.git
cd CVE-2026-31431-Copy-Fail-add-arm64
# Запуск PoC (требуется непривилегированный пользователь)
python3 copy-fail-dual-arch.py
Если PoC успешно получает root shell, система уязвима к данной атаке.
| Стабильная ветка | Минимальная исправленная версия |
|---|
| 5.10.x | ≥ 5.10.254 |
| 5.15.x | ≥ 5.15.204 |
| 6.1.x | ≥ 6.1.170 |
| 6.6.x | ≥ 6.6.137 |
| 6.12.x | ≥ 6.12.85 |
| 6.18.x | ≥ 6.18.22 |
| 6.19.x | ≥ 6.19.12 |
| 7.0.x | ≥ 7.0-rc7 |