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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-29968 — Эксплойт PoC для CVE-2022-29968 от Joseph Ravichandran и Michael Wang | Kitploit
Инструменты/GitHubGitHub/jprx/cve-2022-29968
Анализ уязвимостейЭксплуатацияСтатьи и ИсследованияОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubjprx/cve-2022-29968

CVE-2022-29968

Эксплойт PoC для CVE-2022-29968 от Joseph Ravichandran и Michael Wang

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

Популярное

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

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

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

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

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

CVE-2022-29968

Эксплойт Proof-of-concept для CVE-2022-29968 (неинициализированная память) в ядре Linux, а именно в системе io_uring.

Сбой был обнаружен с помощью Syzkaller. Проанализировали сбой Джозеф Равичандран и Майкл Ван. Эксплойт написан Джозефом Равичандраном.

Мы нашли и сообщили об этой ошибке в рамках финального проекта по курсу 6.858 в MIT, весна 2022.

Любое ядро после 3e08773c3841 ("block: switch polling to be bio based") и до 32452a3eb8b6 ("io_uring: fix uninitialized field in rw io_kiocb") должно быть уязвимо к этому.

Patch Commit

Наш патч-коммит

Writeup

Документ, который мы представили для финального проекта 6.858

Exploit

Requirements

  • Поскольку нам нужно распылить указатели на поддельную структуру bio, SMAP/SMEP должны быть отключены (или, если у вас есть утечка kASLR, вы можете использовать её здесь).
  • /dev/sr0 должен быть доступен для чтения непривилегированному пользователю.

Протестировано в установке Busybox (без KVM) с 128 МБ ОЗУ:

$QEMU -m 128M -kernel $KERNEL -initrd $INITRD -nographic -append "console=ttyS0 nokaslr no_hash_pointers ftrace_dump_on_oops"

initramfs init:

root@kitploit:~
#!/bin/sh
/bin/busybox --install -s

# Монтируем необходимые файловые системы (очень полезно, если вы используете ftrace/отладочные функции)
mount -t proc none /proc
mount -t sysfs sysfs /sys
mount -t tracefs nodev /sys/kernel/tracing
mount -t debugfs none /sys/kernel/debug
mkdir -p /tmp  && mount -t tmpfs tmpfs /tmp
mount -t devtmpfs none /dev

# Настройка прав доступа для sr0
chmod -R 0777 /dev/sr0

# Создаём временный файл (используется старым подходом userfaultfd)
# Не требуется для публичного эксплойта
touch /tmp/test

# Переключаемся на непривилегированного пользователя
su attacker

# Запускаем оболочку
exec sh

# Запускаем оболочку (теперь ^C работает)
#exec setsid sh -c 'exec sh </dev/ttyS0 >/dev/ttyS0 2>&1'

Наш etc/passwd содержит непривилегированного пользователя (attacker) и root-пользователя (root):

root@kitploit:~
attacker:x:1000:1000:Linux User,,,:/home/attacker:/bin/sh
root:x:0:0:root:/tmp:/bin/sh

Ядро было скомпилировано с помощью make defconfig для x86_64 с включением некоторых дополнительных возможностей трассировки/отладки.

Running it

  1. Скомпилируйте с помощью make
  2. ./spray
  3. ./exploit
Скачать инструмент