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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-31431 — Рабочий proof-of-concept эксплойт для CVE-2026-31431 — локальное повышение привилегий в ядре Linux через повреждение page cache в AF_ALG AEAD, предоставляющее root-оболочку. | Kitploit
Инструменты/GitHubGitHub/wesmar/cve-2026-31431
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubwesmar/cve-2026-31431

CVE-2026-31431

Рабочий proof-of-concept эксплойт для CVE-2026-31431 — локальное повышение привилегий в ядре Linux через повреждение page cache в AF_ALG AEAD, предоставляющее root-оболочку.

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

Популярное

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

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

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

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

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

CVE-2026-31431 — Повышение привилегий через AF_ALG

NVD / NIST PoC Download

2026-04-29 — Я публикую этот эксплойт через день после того, как поделился им на форуме MyDigitalLife. Для него не требуется Python; он написан на C и скомпилирован до минимально возможного размера с помощью:

musl-gcc -static -Os -o exploit exploit.c -s

Критическая угроза. Бинарный файл эксплойта скомпилирован без зависимостей и может использоваться для проверки уязвимостей в любой системе Linux.

CVE-2026-31431 — это подтверждённая NIST уязвимость в ядре Linux, которая позволяет непривилегированному локальному пользователю получить root-оболочку за считанные секунды. В связи с публично распространяемым эксплойтом для CVE-2026-31431 я разработал бинарное доказательство концепции (PoC) для оценки подверженности нашей внутренней инфраструктуры. Хотя в некоторых средах использование su ограничено, эта уязвимость особенно критична для общих серверов, поскольку она нацелена на базовое управление памятью ядра. Следовательно, любой SETUID-бинарный файл — включая sudo, passwd, mount или newgrp — может быть использован для запуска эксплойта и получения root-оболочки. Требуются немедленные административные действия по обновлению ядра, поскольку стандартные ограничения пользовательского пространства недостаточны для смягчения этой угрозы. Любая система Linux с непропатченным ядром находится под угрозой.

Мой собственный рабочий эксплойт · Ядро Linux · Криптографический интерфейс AF_ALG (AEAD)

Заменяет /usr/bin/su в кэше страниц ядра, не затрагивая файл на диске

Достаточно локального доступа к оболочке — дополнительные привилегии не требуются

Затрагивает непропатченные дистрибутивы Linux

CVE-2026-31431


📚 Содержание

  • Что это за уязвимость
  • Кто подвержен риску
  • Как работает эксплойт — пошагово
  • Схема атаки
  • Анализ кода эксплойта
  • ELF-полезная нагрузка — технические детали
  • Как проверить, уязвимы ли вы
  • Меры защиты
  • Заметки исследователя
  • Отказ от ответственности

Что это за уязвимость

CVE-2026-31431 — это ошибка в обработке операций scatter-gather I/O и ссылок на кэш страниц в криптографической подсистеме ядра Linux — в частности, в реализации сокетов AF_ALG для алгоритмов AEAD (crypto/af_alg.c, crypto/aead.c).

СвойствоЗначение
ИдентификаторCVE-2026-31431
СсылкаNIST NVD
ТипЛокальное повышение привилегий (LPE)
КомпонентЯдро Linux — AF_ALG / AEAD (authencesn)
Требуемый доступНепривилегированный локальный пользователь
ВоздействиеИнтерактивная root-оболочка
Статус эксплойтаРабочее PoC, публично доступное на GitHub
ПостоянствоНет — изменение существует только в ОЗУ; перезагрузка восстанавливает исходное состояние

Что происходит на самом деле

Ядро Linux предоставляет криптографический интерфейс пользовательскому пространству через сокеты AF_ALG. Уязвимость заключается в том, что во время операции расшифровки AEAD ядро некорректно отображает выходные данные расшифровки непосредственно на страницы кэша страниц исходного файла — вместо временного буфера. Таким образом, атакующий может перезаписать содержимое любого файла в памяти, не изменяя его на диске, без привилегий root и не оставляя видимых следов в файловой системе.


Кто подвержен риску

СистемаСтатус
Ubuntu 24.04 (физический сервер / ВМ)⚠️ Уязвима на непропатченном ядре
Debian, Fedora, Arch на непропатченном ядре⚠️ Уязвимы
Дистрибутивы с CONFIG_SECURITY_LOCKDOWN_LSM✅ Вероятно, защищены
Системы с nosuid или ProtectSUID (systemd)✅ Защищены
Системы с AppArmor/SELinux, блокирующими AF_ALG✅ Защищены
macOS, Windows (нативно)✅ Не затронуты

Как работает эксплойт — пошагово

Эксплойт состоит из двух компонентов: вспомогательного скрипта в /tmp/x и цикла повреждения на основе AF_ALG. Ниже приведено точное описание на основе анализа исходного кода:

1. Настройка вспомогательного скрипта

Эксплойт создаёт /tmp/x со следующим содержимым:

#!/bin/sh
export TERM=xterm-256color
exec /bin/sh

Он устанавливает права 0755. Причина: /usr/bin/su удаляет переменные окружения (включая TERM) при запуске. Вспомогательный скрипт восстанавливает их перед запуском настоящей оболочки, обеспечивая работоспособный терминал.

2. Создание ELF-полезной нагрузки

В памяти создаётся минимальный 158-байтовый x86_64 ELF-бинарный файл, содержащий необработанный шеллкод. Затем строка /bin/sh по смещению 150 заменяется на /tmp/x\0 через memcmp/memcpy. Подробности см. в разделе ELF-полезная нагрузка.

3. Открытие /usr/bin/su только для чтения

int su_fd = open("/usr/bin/su", O_RDONLY);

Файл открывается только для чтения — эксплойту не требуются права на запись.

4. Цикл повреждения — 39 итераций по 4 байта

Полезная нагрузка (158 байт) обрабатывается блоками по 4 байта (39 полных блоков). Каждый блок передаётся через corrupt_binary_chunk(), который выполняет:

  • Создание сокета AF_ALG (SOCK_SEQPACKET)
  • Привязку к authencesn(hmac(sha256),cbc(aes)) — составному алгоритму AEAD
  • Установку 72-байтового ключа и размера тега аутентификации 4 байта
  • Принятие операционного сокета (op_sock)
  • Отправку sendmsg с 8-байтовым буфером (4× 'A' + 4 байта полезной нагрузки) и тремя CMSG: ALG_OP_DECRYPT, IV (20 байт), assoclen=8
  • Выполнение splice: su_fd → pipe → op_sock (zero-copy через ядро)
  • Завершение через recv() — именно здесь ядро ошибочно перезаписывает кэш страниц

5. Выполнение

execve("/usr/bin/su", args, NULL);

Ядро загружает /usr/bin/su через кэш страниц — который теперь отравлен. Бит SUID (chmod u+s) сохранён, поэтому ядро выполняет файл от имени root. Шеллкод выполняет setuid(0) → execve("/tmp/x") → интерактивная root-оболочка.


Схема атаки

Скачать инструмент