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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-46242 — Чекер proof-of-concept под Aarch64 для CVE-2026-46242 «Bad Epoll»: запускает гонку use-after-free close-vs-close в epoll ядра Linux для подтверждения локального повышения привилегий. | Kitploit
Инструменты/GitHubGitHub/binarymasc/cve-2026-46242
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация Бинарных Файлов
GitHubbinarymasc/cve-2026-46242

CVE-2026-46242

Чекер proof-of-concept под Aarch64 для CVE-2026-46242 «Bad Epoll»: запускает гонку use-after-free close-vs-close в epoll ядра Linux для подтверждения локального повышения привилегий.

Репозиторий
4 дней назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2026-46242 — "Bad Epoll"

Этот репозиторий — валидатор уязвимости Bad Epoll для ядер aarch64, основанный на уже существующем эксплойте для x86.

Локальное повышение привилегий в ядре Linux через состояние гонки Use-After-Free в epoll

ПолеОписание
CVECVE-2026-46242
ПсевдонимBad Epoll
ТипUse-After-Free (UAF) через состояние гонки
CVSS7.8 (Высокий)
ВоздействиеЛокальное повышение привилегий → root
Затронутые ядра5.10 – 6.11 (LTS и COS)
Подсистемаfs/eventpoll.c (ep_remove() / путь close())

Сводка об уязвимости

В подсистеме epoll ядра Linux существует состояние гонки при параллельных операциях close() над отслеживаемыми и отслеживающими файловыми дескрипторами. Когда два пути закрытия выполняются одновременно:

  1. Один путь освобождает объект eventpoll через ep_remove().
  2. Ожидающая запись hlist_del_rcu() другого пути попадает в уже освобождённую память.

Это приводит к Use-After-Free, которая повреждает список refs переиспользованного eventpoll, оставляя висячий указатель epi->ffd.file у выжившего epoll-ожидающего — основу для полной цепочки эксплуатации.


Схема эксплуатации

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. KASLR Leak       (prefetch side-channel via libxdk)  │
├─────────────────────────────────────────────────────────┤
│ 2. Race Trigger      (close-vs-close UAF on eventpoll)  │
│    ├─ Adaptive timer: stat/exec phases calibrate ahead  │
│    ├─ False-sharing:  dup()+close() widens race window  │
│    └─ Oracle:         EPOLL_CTL_ADD depth-3 → ELOOP?    │
├─────────────────────────────────────────────────────────┤
│ 3. Reclaim           (freed eventpoll → ep_uaf_target)  │
│    └─ Dangling epi->ffd.file in ep_uaf_waiter           │
├─────────────────────────────────────────────────────────┤
│ 4. Cross-Cache       (filp slab → buddy → pipe_buffer)  │
│    ├─ Drain per-CPU partial list                        │
│    ├─ Free enclosing objects → slab page freed          │
│    └─ Reclaim as pipe pages (256 × 4 KiB)              │
├─────────────────────────────────────────────────────────┤
│ 5. Constrained AAR   (fdinfo ino:/sdev: as read oracle) │
│    ├─ Fake file spray tiles forged struct file in pipe  │
│    ├─ 8B read: ino: ← i_ino at controlled offset       │
│    ├─ 4B read: sdev: ← sigaltstack(sas_ss_sp) cursor   │
│    └─ Walk: init_task → find exploit task → resolve     │
│       files → fdt → fd[] → pipe_buffer → struct page   │
├─────────────────────────────────────────────────────────┤
│ 6. RIP Control       (f_op→poll hijack → JOP → ROP)    │
│    ├─ Forge f_op = virt, f_count = virt - 1             │
│    ├─ JOP pivot chain lands rsp on controlled page      │
│    └─ libxdk ROP: commit_creds(init_cred) + ns switch  │
├─────────────────────────────────────────────────────────┤
│ 7. Ret2Usr           execve("/bin/bash") as root        │
└─────────────────────────────────────────────────────────┘

Сборка

root@kitploit:~
# aarch64 (cross-compile or native)
aarch64-linux-gnu-gcc -O2 -Wall -pthread -march=armv8-a \
    race_check_aarch64.c -o race_check

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

root@kitploit:~
./race_check [timeout_seconds]   # default: 300s (5 min)
./race_check 120                 # 2-minute timeout

Коды выхода

КодЗначение
0Гонка выиграна — ядро уязвимо
1Тайм-аут — гонка не обнаружена (возможен ложный отрицательный результат; это не доказывает, что ядро пропатчено)

Ссылки

  • Оригинальный PoC (J-jaeyoung)
  • NVD — CVE-2026-46242

⚠️ Отказ от ответственности: Этот репозиторий предоставляется только для образовательных целей и авторизованных исследований в области безопасности. Несанкционированное использование этого эксплойта против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения, является незаконным.

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