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

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

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

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

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

Категории

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

CVE-2026-31431

Эксплойт для CVE-2026-31431, уязвимости в authencesn ядра Linux, позволяющей локальному пользователю повысить привилегии до root через манипуляцию страничным кэшем.

Репозиторий

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
13 месяцев назадЕщё не проверено

Copy Fail (CVE-2026-31431) — Подробный разбор

1. Обзор уязвимости

  • Название уязвимости: Copy Fail
  • Идентификатор CVE: CVE-2026-31431
  • Обнаружено / Авторы: Xint Code Research Team (на основе первоначальных фундаментальных исследований исследователя Theori Таэянга Ли).

«Copy Fail» — это критическая логическая уязвимость в криптографическом шаблоне authencesn ядра Linux. Она позволяет непривилегированному локальному пользователю вызвать детерминированную, контролируемую запись 4 байт в page cache любого читаемого файла в системе. Нацелившись на setuid-бинарники (например, /usr/bin/su), злоумышленник может изменить кэш исполнения в памяти и повысить привилегии до Root (UID 0).

В отличие от более старых уязвимостей, таких как «Dirty Cow» или «Dirty Pipe», Copy Fail — это прямолинейный логический дефект, который срабатывает без гонок, повторных попыток или уязвимых к сбоям временных окон. Он высокопортативен и скрытен, поскольку изменяет только page cache в памяти, полностью оставляя файл на диске неизменным, обходя стандартные средства мониторинга целостности файлов.

2. Анализ первопричины

Уязвимость существует на пересечении трёх различных компонентов ядра:

  1. AF_ALG и In-Place AEAD: AF_ALG — это тип сокета, который предоставляет пользовательскому пространству доступ к криптографической подсистеме ядра. В 2017 году была добавлена оптимизация для выполнения операций AEAD на месте (in-place), то есть один и тот же scatterlist служит одновременно входом и выходом для криптографического алгоритма.
  2. Системный вызов splice(): Системный вызов splice() передаёт данные между файловыми дескрипторами и каналами (pipes) без копирования, передавая страницы page cache по ссылке. Когда пользователь выполняет splice файла (например, /usr/bin/su) в сокет AF_ALG, входной scatterlist сокета содержит прямые ссылки на кэшированные страницы ядра этого файла.
  3. Запись в scratch-область authencesn: Алгоритм authencesn (используемый для расширенных порядковых номеров IPsec) требует перестановки байтов. Для этого он временно записывает 4 байта порядковых номеров в выходной буфер как «scratch-пространство». Однако он записывает за допустимую границу вывода.

Из-за оптимизации in-place 2017 года выходной scatterlist содержит страницы page cache, доступные только для чтения, переданные через splice(). Когда authencesn записывает за границу вывода, он напрямую перезаписывает 4 байта в кэшированной памяти ядра целевого файла.

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

Злоумышленник может воспользоваться этой уязвимостью, выполнив следующие шаги:

  1. Настройка сокета: Открыть непривилегированный сокет AF_ALG и привязать его к authencesn(hmac(sha256),cbc(aes)).
  2. Формирование записи: Отправить специально сформированный sendmsg() с полезной нагрузкой Associated Authenticated Data (AAD), содержащей 4 байта, которые необходимо записать.
  3. Splice цели: Использовать splice() для передачи целевого файла (/usr/bin/su) в сокет. Смещение и длина определяют точно где в page cache будут записаны 4 байта.
  4. Запуск дешифрования: Вызов recv() запускает операцию дешифрования, выполняя запись в scratch-область за границы буфера непосредственно в page cache целевого файла.
  5. Выполнение: Запустить целевой бинарник (например, execve("/usr/bin/su")). Ядро выполняет изменённую версию из page cache, содержащую внедрённый вредоносный шеллкод, предоставляя root-доступ.

4. Смягчение и устранение

Временное решение

Если немедленное применение патча или перезагрузка ядра невозможны, можно смягчить эту уязвимость, заблокировав все связанные модули af_alg и выгрузив их из памяти.

Чтобы заблокировать эти модули, выполните следующие команды:

root@kitploit:~
# 1. Выгрузите модули из памяти, если они в данный момент загружены
sudo modprobe -r algif_hash algif_skcipher algif_aead algif_rng af_alg

# 2. Добавьте модули в чёрный список
echo -e "blacklist af_alg\nblacklist algif_hash\nblacklist algif_skcipher\nblacklist algif_aead\nblacklist algif_rng" | sudo tee /etc/modprobe.d/stop-exploit.conf

# 3. Полностью предотвратите загрузку модуля af_alg
echo "install af_alg /bin/true" | sudo tee -a /etc/modprobe.d/stop-exploit.conf

# 4. Перезагрузите систему, чтобы изменения вступили в полную силу
sudo reboot

Постоянное исправление

Команда безопасности ядра Linux исправила эту уязвимость (коммит: a664bf3d603d). Патч возвращает операции AEAD в AF_ALG к модели out-of-place, разделяя scatterlist источника и назначения. Это предотвращает попадание страниц page cache в доступный для записи scatterlist назначения.

Требуемое действие: Обновите ядро вашего дистрибутива до последней версии, предоставленной вашим вендором (Ubuntu, Amazon Linux, RHEL, SUSE и т. д.), и перезагрузите систему.

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