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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-31431 — Rust PoC для локального повышения привилегий в ядре Linux, эксплуатирующий Crypto API и splice для перезаписи page cache и изменения UID в /etc/passwd для получения root. | Kitploit
Инструменты/GitHubGitHub/g01d3nw01f/cve-2026-31431
Повышение привилегийФреймворки для эксплойтовЭксплуатацияЭксплуатация Бинарных Файлов
GitHubg01d3nw01f/cve-2026-31431

CVE-2026-31431

Rust PoC для локального повышения привилегий в ядре Linux, эксплуатирующий Crypto API и splice для перезаписи page cache и изменения UID в /etc/passwd для получения root.

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

Популярное

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

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

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

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

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

CVE-2026-31431 LPE PoC (реализация на Rust)

Этот проект представляет собой Proof of Concept (PoC), реализованный на Rust, для локального повышения привилегий (LPE) через уязвимость (имитирующую CVE-2026-31431). Он демонстрирует, как манипулировать кэшем страниц ядра Linux, эксплуатируя Crypto API.[cite: 1, 2]

[!CAUTION] Этот код предназначен исключительно для образовательных и этических исследований в области безопасности. Несанкционированное использование этого инструмента против систем без предварительного явного согласия является незаконным. Автор не несёт ответственности за любое неправомерное использование или ущерб, причинённый этой программой.

Обзор

Инструмент эксплуатирует уязвимость, связанную с AF_ALG (интерфейс криптографии ядра) и системным вызовом splice.[cite: 2] Он позволяет непривилегированному пользователю перезаписать 4 байта кэша страниц для файла, доступного только для чтения — в частности, нацеливаясь на поле UID в /etc/passwd, чтобы временно изменить его на 0000 (root).[cite: 1, 2]

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

  • Определение цели: Программа анализирует main.rs, чтобы найти точное смещение в файле для UID текущего пользователя в /etc/passwd.[cite: 1, 2]
  • Прогрев кэша страниц: Она читает целевой файл, чтобы гарантировать загрузку соответствующей страницы в кэш страниц ядра.[cite: 2]
  • Манипуляция памятью:
    • Инициализирует сокет с помощью AF_ALG с алгоритмом authesn(hmac(sha256),cbc(aes)).[cite: 2]
    • Тщательно подбирая параметры setsockopt и используя splice, перенаправляет данные файла через криптографический конвейер.[cite: 2]
    • Уязвимость позволяет процессу «расшифровки» перезаписать исходные данные кэша страниц нужными 4 байтами (0000).[cite: 2]
  • Повышение привилегий:
    • Если указан флаг --shell, выполняется su <user>, который завершается успешно, поскольку система теперь видит UID пользователя как 0 в кэшированном /etc/passwd.[cite: 1]
    • В противном случае повреждённый кэш страниц вытесняется с помощью POSIX_FADV_DONTNEED для восстановления целостности системы.[cite: 1]

Предварительные требования

  • ОС: Linux (в частности, версии, уязвимые к этому поведению Crypto API).
  • Язык: Rust (Edition 2024).[cite: 3]
  • Зависимости: libc и nix (с функциями fs, socket, zerocopy и user).[cite: 3]

Использование

Сборка

root@kitploit:~
cargo build --release

Выполнение

Тест патчинга кэша страниц без запуска оболочки:

root@kitploit:~
./target/release/cve-2026-31431

Попытка повышения привилегий до root-оболочки:

root@kitploit:~
./target/release/cve-2026-31431 --shell

Структура проекта

  • main.rs: Оркестрирует атаку, обрабатывает аргументы командной строки и выполняет финальную команду оболочки.[cite: 1]
  • modules.rs: Содержит основную логику эксплуатации, включая манипуляции с сокетом AF_ALG и поиск смещения UID.[cite: 2]
  • Cargo.toml: Определяет метаданные проекта и зависимости от внешних крейтов.[cite: 3]

Технические ссылки

  • Задействованные файлы: main.rs, modules.rs, Cargo.toml[cite: 1, 2, 3]
  • Ключевые системные вызовы: socket, bind, sendmsg, splice, posix_fadvise.[cite: 1, 2]
Скачать инструмент