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

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

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

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

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

Категории

Все категории
Loading categories
copyfail-rs — Эксплойт на Rust для CVE-2026-31431 — примитив записи в page-cache ядра Linux через AF_ALG splice, позволяющий повысить привилегии до root путём патчинга /etc/passwd или выполнения шеллкода. | Kitploit
Инструменты/GitHubGitHub/boos4721/copyfail-rs
Повышение привилегийФреймворки для эксплойтовАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubboos4721/copyfail-rs

copyfail-rs

Эксплойт на Rust для CVE-2026-31431 — примитив записи в page-cache ядра Linux через AF_ALG splice, позволяющий повысить привилегии до root путём патчинга /etc/passwd или выполнения шеллкода.

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

Популярное

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

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

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

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

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

copyfail-rs

Реализация CVE-2026-31431 (Copy Fail) на Rust — примитив записи в page-cache ядра Linux через AF_ALG splice.

中文文档 / Chinese README

CVE-2026-31431

Реализация algif_aead в ядре Linux позволяет непривилегированному пользователю записывать произвольные данные в page-cache любого читаемого файла через системный вызов splice(). AEAD-алгоритм authencesn записывает seqno_lo (контролируемые пользователем байты AAD 4-7) в целевой scatterlist по смещению assoclen + cryptlen, что при объединении со страницами page-cache через splice() приводит к произвольной записи 4 байт. Содержимое на диске остаётся неизменным, но все последующие читатели видят повреждённые данные page-cache.

Затронутые ядра: Linux < 6.12.23, < 6.13.11, < 6.14.2

Возможности

Режимы повышения привилегий

1. --uid — Изменяет поле UID текущего пользователя на 0000 в /etc/passwd через запись в page-cache. После патча su <username> с вашим паролем открывает root-оболочку. Инструмент пытается очистить page-cache после аутентификации и перед запуском оболочки, что снижает вероятность того, что SSH продолжит видеть учётную запись с UID 0. Изменение пароля root не требуется. Работает для любого 4-значного UID (1000-9999).

2. --escalate — Патчит строку root в /etc/passwd через запись в page-cache: root:x:0:0:root:... → root::0:0:root :.... Поле комментария дополняется пробелами для сохранения одинаковой длины строки. После патча su root работает без пароля.

3. --set-password — Сначала повышает привилегии (удаляет пароль root), затем читает новый пароль из stdin и применяет его с помощью chpasswd.

4. Режим по умолчанию (без флагов) — Перезаписывает page-cache бинарного файла su shellcode-нагрузками, зависящими от архитектуры (x86_64, x86, aarch64), затем выполняет su для получения root-оболочки.

Сборка

root@kitploit:~
cargo build
cargo build --release
cargo test
cargo clippy

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

root@kitploit:~
./copyfail-rs --check
./copyfail-rs --uid
./copyfail-rs --escalate
printf '%s\n' 'mypassword' | ./copyfail-rs --set-password
./copyfail-rs --backup /tmp/su.bak
./copyfail-rs --exec /bin/bash

Восстановление

Изменения page-cache непостоянны — очистка кэша восстанавливает исходное содержимое на диске:

root@kitploit:~
echo 3 > /proc/sys/vm/drop_caches

Проверено на

Документация

  • Быстрый старт
  • Принцип уязвимости
  • Демонстрация
  • Защита и смягчение последствий

Лицензия

Этот проект предоставлен только для авторизованного тестирования безопасности и образовательных целей.

Скачать инструмент
ФлагОписание
--checkБезопасная предварительная проверка: проверка разрешённой цели su и выход
--escalateПатч /etc/passwd в page-cache для удаления пароля root, затем su root
--set-passwordСначала повышение привилегий, затем чтение нового пароля root из stdin и его применение через chpasswd
--uidИзменение UID текущего пользователя на 0 в /etc/passwd, затем su <username>
--backup <path>Резервное копирование бинарного файла su перед перезаписью
--exec <path>Запуск конкретной команды от имени root после перезаписи
ОСЯдроРезультат
Ubuntu 22.04.2 LTS6.8.0-87-generic--escalate пройден, --set-password пройден, --uid пройден
Ubuntu 22.04.2 LTS6.8.0-107-generic--escalate пройден, --uid пройден
Ubuntu 25.106.17.0-5-genericsplice EINVAL, ядро пропатчено
Ubuntu 25.106.17.0-8-generic--uid пройден
Alpine Linux edge6.19.12Эксплойт запускается, запись в page-cache заблокирована исправлением ядра