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

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

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

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

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

Категории

Все категории
Loading categories
cve-2026-98432-kernel-upgrade — Безопасное обновление ядра для CVE-2026-98432 на Ubuntu 24.04 с NVIDIA и анализ ошибки | Kitploit
Инструменты/GitHubGitHub/bigbiuewhale/cve-2026-98432-kernel-upgrade
Оборонительные ИнструментыАнализ уязвимостейСкриптинг и автоматизацияАудит конфигурацииАнализ Бинарных ФайловОбучение и ОбразованиеРеагирование на Инциденты
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
bigbiuewhale/cve-2026-98432-kernel-upgrade

cve-2026-98432-kernel-upgrade

Безопасное обновление ядра для CVE-2026-98432 на Ubuntu 24.04 с NVIDIA и анализ ошибки

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

Обновление ядра для CVE-2026-98432

Это переводит машину с Ubuntu 24.04 и GPU NVIDIA на ядро, которое исправляет CVE-2026-98432 — use-after-free в коде IPv4 TCP ядра. Оно создано для машины, до которой вы можете не иметь доступа, если обновление пойдёт не так: ничему не доверяют, пока оно не загрузилось, а неудачный шаг останавливается явно, вместо того чтобы оставить сломанный хост.

Предпочитайте обычные обновления Ubuntu, если они содержат исправление. Это существует потому, что в чрезвычайной ситуации, для которой оно было написано, единственным исправленным ядром была предрелизная сборка в staging-архиве Canonical. Новейшее опубликованное ядро, 7.0.0-42, всё ещё содержало ошибку.

Нужно ли вам это?

Не ориентируйтесь на номер версии. Прочитайте собственный код работающего ядра с помощью шлюза personal_server:

sudo bash scripts/14_verify_kernel_fixes.sh

Он считывает машинный код работающего ядра из оперативной памяти, а также ядра, которое GRUB загрузит следующим, из его образа. В исправленном ядре inet_sock_destruct и tcp_v4_reqsk_destructor вызывают kvfree_call_rcu. В уязвимом они вызывают kfree.

Если это не сработает, сначала попробуйте обычный путь:

sudo apt-get update
sudo apt-get install --only-upgrade linux-generic-hwe-24.04
sudo systemctl reboot

Используйте этот репозиторий, только если это не влечёт фиксированного ядра.

Как использовать

Вам нужна собственная копия, поскольку процесс публикует свой журнал аудита в Git по мере выполнения. Сделайте форк этого репозитория и на машине:

git clone <your fork> && cd <it>
kernel-upgrade/install.sh
sudo systemctl reboot

Подождите около 8 минут для перезагрузок. Машина перезагрузится сама ещё дважды, и от вас ничего не потребуется:

uname -r                                       # must print 7.0.0-43-generic
python3 -I kernel-upgrade/upgrade.py status    # must say complete

Если машина не подходит, установщик сообщает причину и ничего не меняет. В kernel-upgrade/PROCEDURE.md описано, что требуется хосту, все возможные сбои и что с ними делать, а также граница краха.

Что он делает

ЗагрузкаКто её запускаетЯдроЧто происходит
1ВыЯдро, о котором известно, что оно здесь работаетДоказывает, что GRUB умеет писать на этот диск, поэтому однократная загрузка действительно однократна
2Процесс, один раз-43, только один разСчитывает исправление из памяти ядра и проверяет всё, что было у хоста раньше. При панике система сама возвращается к заведомо рабочему ядру
3Процесс, один раз-43, через штатный GRUBДоказывает конечное состояние: штатный GRUB восстановлен, все остальные ядра удалены

Что он гарантирует:

  • complete означает доказано. Этот статус достигается только после загрузки через конечное состояние GRUB и ядра, и итоговая запись попадает в Git до сохранения статуса.
  • Ничего не захардкожено. lock.json указывает, что устанавливать, и не содержит сведений о какой-либо машине. Резервное ядро, списки удаления и базовый уровень здоровья считываются с хоста и публикуются до первого изменения.
  • Отказ ничего не меняет. Вся транзакция пакетов сначала симулируется.
  • Резервное ядро действительно загружалось здесь. Это новейшее ядро, чей точный initramfs уже запускался на этом хосте; ядро, которое никогда не загружалось, не выбирается никогда.
  • В APT ничего не добавляется. Ни источника, ни ключа, ни pin, ни hold. Пакеты проверяются по хеш-блоку, откуда бы они ни брались.
  • Каждый шаг зафиксирован. Каждый шаг, меняющий хост, попадает в Git до и после выполнения, а root никогда не хранит учётные данные Git. Если публикация останавливается, ни один следующий шаг не начинается.
  • Отключение питания переживается в любой момент, кроме окон, названных в PROCEDURE.md. Следующая загрузка продолжает или явно останавливается.

Как это тестировалось

kernel-upgrade/vm/final-run.sh создаёт с нуля тестовые UEFI-машины с эмулируемым NVMe-диском на 4 ТБ и запускает в них точный установщик. test-report.json записывает хеши того, что прошло проверку, и install.sh отказывается запускаться, если код отличается от этого отчёта.

24 сценария охватывают реальные отключения питания во время работы с пакетами, во время финальной очистки и после финальной записи, паники и зависания ядра, падение GitHub на каждом этапе и машину, которую необходимо отклонить. from-zero собирает машину с настоящим скриптом personal_server из настоящего архива Ubuntu, видит, как проверка её отклоняет, обновляет её и видит, как проверка проходит. Для from-zero нужен клон personal_server рядом с этим репозиторием.

То, что не могут показать виртуальные машины, перечислено в PROCEDURE.md. Главное — реальная прошивка, которую проверяет загрузка 1 на самой машине.

Первое реальное применение

Это запускалось на сервере, доступном из интернета, с NVMe-диском на 4 ТБ и RTX 5090 2026-11-02. У той машины нет удалённой консоли, только выключатель питания в сети. Первая загрузка через штатный GRUB прошла все проверки: 7.0.0-43 было единственным ядром, а исправление подтверждено в живой памяти ядра.

Первая версия этого процесса там работала, но была неправильной. systemd убил её в последние миллисекунды, потому что она удаляла свой собственный unit-файл во время работы. Она также объявляла себя complete до того, как загрузился штатный GRUB, и содержала в себе сведения о той машине. Этот репозиторий — переработка. Независимые проверки затем нашли ещё реальные дефекты до повторного запуска, включая проверку, которая остановила бы каждый реальный NVMe-хост после изменения его пакетов.

Структура

├── ANALYSIS.md                 what the bug is, what MPTCP changes, and the limits of that
├── upstream-fix.diff           the two-line upstream fix
├── filter/                     an interim packet filter. It reduces exposure and isn't a fix
└── kernel-upgrade/
    ├── PROCEDURE.md            the full procedure, failure table and crash boundary
    ├── install.sh              the entry point
    ├── upgrade.py              the controller and the audit publisher
    ├── lock.json               what to install, with hashes
    ├── cuda-probe.c            a real GPU allocation, for the health check
    ├── test_upgrade.py         logic tests against a real Git remote
    ├── test-report.json        what passed, and the exact bytes it covered
    ├── test-evidence/          the journal of each VM scenario
    └── vm/                     the VM test harness

Код выпущен под лицензией Unlicense. Пакеты сохраняют собственные лицензии. В релизе размещены пакеты ядра от Canonical и dkms, поскольку промежуточный архив удаляет старые сборки. Пакеты NVIDIA здесь не распространяются: они берутся из вашего собственного архива Ubuntu.

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