Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-31431 — Эксплойт и детектор для локального повышения привилегий в ядре Linux (CVE-2026-31431), который повреждает page cache для получения прав root, с рекомендациями по смягчению последствий. | Kitploit
Инструменты/GitHubGitHub/kaleth4/cve-2026-31431
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияТестирование на Проникновение
GitHubkaleth4/cve-2026-31431

CVE-2026-31431

Эксплойт и детектор для локального повышения привилегий в ядре Linux (CVE-2026-31431), который повреждает page cache для получения прав root, с рекомендациями по смягчению последствий.

Репозиторий
3 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

🚨 CVE-2026-31431: Copy Fail

Критическая 9-летняя уязвимость в ядре Linux, позволяющая получить root-доступ за секунды


📋 Краткое резюме

АтрибутДетали
CVECVE-2026-31431
ПсевдонимCopy Fail
ТипЛокальное повышение привилегий (LPE)
CVSS7.8 (High)
ОбнаруженаTheori (Xint Code)
Раскрытие29 апреля 2026 года
КомпонентПодсистема algif_aead ядра Linux

⚡ Почему это так опасно?

🎯 Скорость

  • Мгновенный эксплойт: < 1 секунды для получения root
  • Python-скрипт всего 732 байта

👻 Полная скрытность

  • Изменяет только оперативную память (page cache), не диск
  • Инструменты целостности файлов не обнаруживают это
  • После перезагрузки следы исчезают (криминалистический анализ затруднён)

🌍 Масштабное воздействие

  • Затрагивает практически все современные дистрибутивы
  • Ядра от v4.14 (2017) до v7.0-rc
  • Уязвимость существовала 9 лет без обнаружения

☁️ Риск в Cloud/Kubernetes

  • Позволяет выйти из контейнеров на главный узел
  • Кэш страниц общий между хостом и контейнерами
  • Критическое воздействие на мультитенантные среды

🔍 Технические детали

Корневая причина

Ошибка в оптимизации «операции на месте» (in-place), добавленной в 2017 году (коммит 72548b093ee3). Позволяет локальному пользователю выполнить контролируемую запись 4 байт непосредственно в кэш страниц ядра.

Механизм эксплуатации

  1. Атакующий использует интерфейс AF_ALG для доступа к криптографическим алгоритмам ядра
  2. Повреждает версию в памяти setuid-бинарников (/usr/bin/su) или чувствительных файлов (/etc/passwd)
  3. При запуске повреждённого бинарника получает root-шелл

Почему это осталось незамеченным

Это логическая ошибка проектирования, а не переполнение памяти. Для обнаружения требовался глубокий анализ криптографической подсистемы.


📊 Затронутые системы

✅ Подтверждено

  • Ubuntu: 20.04, 22.04, 24.04 LTS
  • RHEL/AlmaLinux/Rocky Linux: Все современные версии
  • Debian: Все версии с ядром v4.14+
  • Amazon Linux 2023
  • SUSE: Последние версии

🛡️ План устранения

1️⃣ Окончательное решение: Обновление ядра

root@kitploit:~
# Ubuntu/Debian
sudo apt update
sudo apt upgrade
sudo reboot

# RHEL/AlmaLinux/Rocky
sudo dnf update kernel
sudo reboot

# Проверка версии ядра
uname -r

⚠️ Перезагрузка обязательна для активации нового ядра.


2️⃣ Экстренное смягчение (без немедленной перезагрузки)

Для Ubuntu/Debian:

root@kitploit:~
# Отключить загрузку уязвимого модуля
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/copyfail_mitigation.conf

# Выгрузить модуль, если он уже используется
sudo rmmod algif_aead

Для RHEL/AlmaLinux:

root@kitploit:~
# Модуль обычно встроен в ядро
# Добавить параметр загрузки для его отключения
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

# Перезагрузиться для применения изменений
sudo reboot

3️⃣ Очистка кэшей (если подозреваете предыдущую эксплуатацию)

root@kitploit:~
# Очистить кэш страниц на лету
sudo sysctl -w vm.drop_caches=3

⚠️ Примечание: Это не заменяет патч. Только дополнительная мера.


📅 Хронология событий

ДатаСобытие
29 апреляПубличное раскрытие компанией Theori
1 маяОбнаружены первые попытки активной эксплуатации

📦 Статус патчей


🔐 Проверка вашей системы

Уязвимо ли ваше ядро?

root@kitploit:~
# Получить версию ядра
uname -r

# Уязвимо, если:
# - v4.14 до v7.0-rc (выпущено между 2017 и апрелем 2026)
# - Содержит коммит 72548b093ee3

# Проверить, загружен ли модуль algif_aead
lsmod | grep algif_aead

# Если он есть в списке, ваша система уязвима

🧬 Анализ безопасности: Фактор ИИ

Самое разрушительное: Обнаружено ИИ за 1 час

ИИ выявил эту ошибку, которая оставалась незамеченной разработчиками в течение 9 лет. Это знаменует собой поворотный момент:

  • 🤖 Машины могут аудировать код ядра быстрее, чем люди
  • 🔍 Автоматически находя сложные логические ошибки
  • ⚠️ Последствия для будущего исследований 0-day

Быстрый старт

root@kitploit:~
# 1. Детектирование
python3 prueba.py
#   exit 0 = не уязвимо, 2 = уязвимо, 1 = ошибка теста

# 2. Эксплойт (интерактивный — su запросит ваш собственный пароль)
python3 exploit.py --shell

Использование детектора

root@kitploit:~
python3 prueba.py

Что он делает:

  1. Подтверждает, что AF_ALG и алгоритм authencesn(hmac(sha256),cbc(aes)) доступны из непривилегированного процесса.

  2. Создаёт файл-сторож 4 КиБ во временном каталоге и заполняет кэш страниц.

  3. Отправляет 8 байт AAD инлайн через sendmsg+cmsg с seqno_lo, установленным в маркер PWND, а затем копирует 32 байта из страницы кэша страниц сторожа в сокет операции AF_ALG через os.splice().

  4. Вызывает recv() для запуска расшифровки. Проверка аутентификации завершается с EBADMSG; временная запись всё равно выполняется.

  5. Повторно читает файл (кэш страниц, не диск) и ищет маркер.

Классы вывода:

  • Предусловие не выполнено: AF_ALG или authencesn недоступны. Выход 0.
  • УЯЗВИМО к CVE-2026-31431: маркер PWND вставлен в изменённую страницу.

Выход 2.

  • Кэш страниц ИЗМЕНЁН через путь инлайн-вставки AEAD: запись в страницу произошла, но маркер не вставлен в ожидаемую позицию. Считать уязвимым. Выход 2.
  • Кэш страниц не тронут: исправлено. Выход 0.

Детектор никогда не изменяет /usr/bin/su, /etc/passwd или любые другие файлы за пределами временного каталога, который он создаёт, и этот файл удаляется по завершении.

Выход. ## Использование LPE

root@kitploit:~
python3 exploit_cve_2026_31431.py # Только патч, выводит следующие шаги
python3 exploit_cve_2026_31431.py --shell # Патч и запуск `su <пользователь>`

Функция:

  1. Находит строку UID текущего пользователя в /etc/passwd и определяет

смещение в байтах поля UID из 4 символов.

  1. Выполняет write4 по этому смещению, заменяя UID на

0000.

  1. Вызывает pwd.getpwnam(пользователь) для подтверждения, что libc теперь сообщает UID 0.
  2. С --shell выполняет execvp("su", ["su", пользователь]). Введите свой собственный пароль. PAM проверяет /etc/shadow (без изменений), затем

setuid(getpwnam(user).pw_uid) устанавливается в 0.

Требования

  • Текущий пользователь имеет UID из 4 цифр (1000–9999). UID из 1–3 цифр

требуют многоразовых записей; расширьте write4 соответствующим образом.

  • Ни один демон кэша NSS (nscd, sssd, systemd-userdbd) не маскирует чтения /etc/passwd. Если getpwnam всё ещё возвращает реальный UID после применения патча, перезапустите или проигнорируйте кэш, или выберите другого пользователя.

  • Страница /etc/passwd должна оставаться в кэше между применением патча и запуском su. На практике это надёжно на любой системе с нормальным давлением на память.

Откат

Файл /etc/passwd на диске остаётся без изменений.

Пробный запуск (exploit_cve_2026_31431.py без --shell) автоматически удаляет повреждённую страницу при выходе через POSIX_FADV_DONTNEED, поэтому поиски UID → имя немедленно возвращаются к норме.

После использования --shell** страница остаётся повреждённой до очистки. Пока она повреждена, любая операция, разрешающая UID 1000 → имя (например, ls, файловые менеджеры, проверки владения scp/sftp), завершится ошибкой или покажет числовые идентификаторы. Для очистки:

root@kitploit:~
# Без привилегий: запросить удаление кэша страниц /etc/passwd:
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); \
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

# Из root-консоли:
echo 3 > /proc/sys/vm/drop_caches

Перезагрузка также очищает его.

Как работает write4

root@kitploit:~
sendmsg([AAD из 8 байт], cmsg=[ALG_SET_OP=DECRYPT, ALG_SET_IV, ALG_SET_AEAD_ASSOCLEN=8],
flags=MSG_MORE)
splice(target_fd, pipe_w, 32, offset_src=file_offset)
splice(pipe_r, op_fd, 32)
recv(op_fd) # EBADMSG; временная запись уже выполнена

4 байта с позиций 4–7 AAD (seqno_lo) записываются authencesn в целевой scatter-list, который в этом пути кода является страницей кэша страниц, извлечённой из target_fd. Смещение приземления внутри страницы соответствует offset_src, переданному в splice().

Смягчение

Пока исправленное ядро не поступит в ваш дистрибутив:

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

После применения патча test_cve_2026_31431.py должен показать сообщение «Предусловие не выполнено» и выйти с кодом 0.

Исходное исправление возвращает операции AEAD in-place к операциям out-of-place, не допуская страницы кэша страниц в изменяемые scatter-списки.

📚 Официальные ссылки

  • CVE-2026-31431 - NVD
  • Copy Fail Patches - AlmaLinux
  • Sysdig Security Research
  • CISA Alert

⚠️ Финальные рекомендации

  1. Критический приоритет: Обновите ядро до 15 мая 2026 года (предписание CISA)
  2. Если перезагрузка невозможна: Примените временное смягчение, отключив algif_aead
  3. В Cloud/Kubernetes: Немедленно проверьте, что ваши узлы исправлены
  4. Мониторинг: Ищите попытки загрузки модуля algif_aead в журналах аудита

Последнее обновление: 3 мая 2026 года
Статус: 🔴 КРИТИЧЕСКИЙ - Требуется немедленное действие

Скачать инструмент
2 маяCISA обязывает федеральные агентства США установить патч до 15 мая
3 маяПатчи доступны в Ubuntu, RHEL, AlmaLinux, Debian
ДистрибутивСтатусСсылка
Ubuntu✅ ИсправленоUSN-8226-1 (20.04, 22.04, 24.04)
RHEL/AlmaLinux/Rocky✅ ДоступноС 1 мая
Debian✅ В репозиториях безопасностиОбновление доступно
Android⏳ СкороБюллетень безопасности за июнь 2026