Sploitus

Exploit for CVE-2026-31431

kitploit · 2026-08-27

Exploit Code

MARKDOWN151 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-XD20111-CVE-2026-31431
# CVE-2026-31431 — Copy Fail

> **Локальное повышение привилегий** в криптографическом шаблоне `authencesn` ядра Linux через `AF_ALG` \+ `splice()`.  
>  Раскрыто 29 апреля 2026 года компанией Theori (Xint Code).

* * *

## Обзор

Поле| Детали  
---|---  
**CVE**|  CVE-2026-31431  
**Псевдоним**|  Copy Fail  
**CVSS**|  7.8 HIGH  
**Тип**|  Локальное повышение привилегий (LPE)  
**Появилась**|  Ядро Linux 4.14 (2017, коммит `72548b093ee3`)  
**Исправлена**|  Коммит в mainline `a664bf3d603d`  
**Требуется**|  Локальный доступ к оболочке без привилегий  
**Удалённый вектор**|  Нет — только локально  
  
* * *

## Краткое описание уязвимости

Логическая ошибка в обёртке AEAD `authencesn` ядра позволяет непривилегированному локальному пользователю выполнить **детерминированную, контролируемую запись 4 байт в page cache любого читаемого файла** в системе — включая setuid-бинарники, такие как `/usr/bin/su`.

Корневая причина — оптимизация обработки на месте 2017 года, которая помещала страницы page cache в записываемый scatterlist. Алгоритм `authencesn` записывает 4 байта служебных данных за пределами своей целевой выходной области во время перестановки Extended Sequence Number. Из-за структуры scatterlist, введённой оптимизацией, эти 4 байта попадают в page cache файла, переданного через `splice()`, — полностью обходя права доступа к файлу.

**Никаких гонок. Никаких повторов. Никакого риска сбоя. Детерминированно на всех протестированных дистрибутивах.**

### Сравнение с предыдущими работами

* * *

## Затронутые версии

**Уязвимы:** ядро Linux с 4.14 по 6.18.21 и 6.19.x до 6.19.12.

Все основные дистрибутивы, поставляющие ядра в этом диапазоне, затронуты, включая:

Дистрибутив| Протестированная версия  
---|---  
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  
  
**Не затронуты:** Ubuntu 26.04 (Resolute) и новее.

* * *

## Смягчение последствий

### Вариант 1 — Патч (рекомендуется)

Обновите ядро, содержащее коммит mainline `a664bf3d603d`, который откатывает оптимизацию обработки на месте 2017 года.

root@kitploit:~
    
    
    # Ubuntu / Debian
    sudo apt update && sudo apt upgrade -y && sudo reboot
    
    # RHEL / AlmaLinux / Amazon Linux
    sudo dnf clean metadata && sudo dnf upgrade && sudo reboot
    
    # SUSE
    sudo zypper refresh && sudo zypper update kernel-default && sudo reboot
    

### Вариант 2 — Отключение `algif_aead` (временно)

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

> **Примечание для систем семейства RHEL:** `algif_aead` встроен в ядро на RHEL/AlmaLinux/CentOS (`CONFIG_CRYPTO_USER_API_AEAD=y`). Обходной путь через `modprobe.d` **не работает** на этих системах. Вместо этого используйте метод `initcall_blacklist`.

**Debian/Ubuntu (модуль загружаемый):**

root@kitploit:~
    
    
    echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
    sudo rmmod algif_aead 2>/dev/null || true
    

**Семейство RHEL (встроено в ядро — требуется перезагрузка):**

root@kitploit:~
    
    
    sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"
    sudo reboot
    

Подтвердите после перезагрузки:

root@kitploit:~
    
    
    grep initcall_blacklist /proc/cmdline
    

### На что влияет этот обходной путь

### Вариант 3 — seccomp (эшелонированная защита)

Для недоверенных рабочих нагрузок — контейнеров, CI-раннеров, песочниц — заблокируйте создание сокетов `AF_ALG` через политику seccomp независимо от состояния патча. Это ограничивает поверхность атаки даже на уязвимых ядрах.

* * *

## Обнаружение

Проверьте, загружен ли `algif_aead` или используется ли он в данный момент:

root@kitploit:~
    
    
    # Проверка, загружен ли модуль
    lsmod | grep algif_aead
    
    # Проверка, есть ли у какого-либо процесса открытый сокет AF_ALG
    lsof | grep AF_ALG
    ss -xa | grep alg
    

Сигнатуры обнаружения в реальном времени доступны в Sysdig Secure (правило: `AF_ALG Page Cache Poisoning Leading to Privilege Escalation`).

* * *

## Ссылки

* * *

## Хронология раскрытия

* * *

## Автор

**xD The Watcher** — Red Teamer, этичный хакер и исследователь безопасности ИИ  
GitHub: @xd20111  
Блог: yourhacker

* * *

## Примечания

Этот репозиторий документирует уязвимость в исследовательских и защитных целях. За авторитетным техническим отчётом и официальным PoC обращайтесь к раскрытию Theori по ссылке выше.

Если ваша модель угроз включает мультитенантность с общим ядром — контейнеры на общем хосте, CI-раннеры, фермы сборки — граница изоляции теперь значительно слабее до установки патча. Правильный ответ — изоляция на уровне оборудования или виртуальной машины, а не границы пространств имён.