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

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

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

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

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

Категории

Все категории
Loading categories
litebox-snp-novalidation-userptr — Высокоуровневый примитив локальной записи: LiteBox v0.1.0 SNP UserPtr имеет NoValidation, поэтому буфер гостевого системного вызова может быть kernel VA | Kitploit
Инструменты/GitHubGitHub/abraxas/litebox-snp-novalidation-userptr
Повышение привилегийКриминалистика памятиАнализ уязвимостейЭксплуатацияВиртуализация для безопасностиБезопасность облачных средАппаратная БезопасностьСтатьи и Исследования

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Эксплуатация Бинарных Файлов
GitHubabraxas/litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Высокоуровневый примитив локальной записи: LiteBox v0.1.0 SNP UserPtr имеет NoValidation, поэтому буфер гостевого системного вызова может быть kernel VA

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

Abraxas Labs - litebox-snp-novalidation-userptr

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  litebox-snp-novalidation-userptr

litebox-snp-novalidation-userptr

Класс: примитив записи (R/W из гостя в ядро SNP) Достижимость: локальная

LiteBox v0.1.0 (d8556e3) — Microsoft

SNP LinuxKernel связывает UserConstPtr / UserMutPtr с NoValidation, который возвращает указатель без изменений. Комментарий гласит: TODO: implement pointer validation to ensure the pointers are in user space. LVBS уже выполняет проверку диапазона USER_ADDR_MIN..USER_ADDR_END (0x10000 .. 0x7ffffffff000 на x86_64) и оборачивает копирования в STAC/CLAC. SNP — нет. Гостевой mmap ядерного VA отклоняется (TASK_ADDR_MAX), поэтому сохранения из CPL3 не могут попасть в кучу ядра. Путь системного вызова выполняется в режиме ядра и может. memcpy_fallible — это rep movsb в режиме супервизора.

Этот недочёт даёт R/W из гостя в ядро SNP (VMPL2 LiteBox). Это не хост VMPL0, не гипервизор и не прошивка SNP.

IDCVE пока нет
КлассПримитив записи (R/W из гостя в ядро SNP)
ДостижимостьЛокальная (недоверенное гостевое пространство пользователя внутри litebox_runner_snp)
CWECWE-823, CWE-119
CVSSHigh: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Продуктmicrosoft/litebox
Затронутоv0.1.0 (d8556e33676e47244bfefa139c1e9ff95bd67d53) платформа ядра SNP. TODO всё ещё присутствует в origin/main по состоянию на 97001fd
Аутентификациягость уже запущен внутри SNP VM
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1. Без оборудования SNP

Что может сделать атакующий

Кто: недоверенное гостевое пространство пользователя внутри litebox_runner_snp. Issue #505 (открытый RFC) — это тот же класс. LVBS реализовал это. SNP — нет.

Целостность (доказанный в лаборатории гаджет)

Лаборатория представляет собой гаджет copy_from_slice в режиме супервизора из двух валидаторов плюс копию закреплённого файла litebox_platform_linux_kernel/src/lib.rs. Это не гостевой системный вызов на оборудовании SNP.

ПутьЦелевой VAРезультат
SNP NoValidation (тождество)0x1000 (ниже USER_ADDR_MIN) и 0xffff800000000000 (GVA_OFFSET)принимается; memcpy записывает LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS в объект с меткой ядра
Проверка диапазона LVBSте же ядерные назначенияотклоняется, errno=14 EFAULT, объект ядра пуст
Обалегальное пользовательское назначение 0x400000оба копируют свидетеля в пользовательский объект
Закреплённый файл в образен/дкомментарий TODO плюс UserConstPtr / UserMutPtr, связанные с NoValidation (LvbsValidateAccess отсутствует)

Целостность (выведено из пути системного вызова закреплённого файла)

Метод + стокПривилегия
read / readv / pread / recv* / getcwd / uname / epoll_pwait с buf = ядерный VA -> UserMutPtr::copy_from_slice -> memcpy_fallible (rep movsb)запись до MAX_KERNEL_BUF_SIZE (512 КиБ) за системный вызов, или страничными фрагментами iovec, в любой отображённый ядерный VA SNP. Полезная нагрузка выбирается гостем (pipe/файл, записанный гостем)

Разведка (выведено)

Метод + стокПривилегия
write / writev / send* с buf = ядерный VA -> read_at_offsetчтение отображённой памяти ядра SNP в гостевой fd
неотображённый ядерный VAEFAULT через таблицу исключений (карта того, какие страницы ядра существуют)

Доступность (выведено)

Метод + стокПривилегия
повреждение кучи ядра SNP / таблиц страниц / TLS shimкрах или перенаправление гостевого ядра SNP. Я не заявляю о надёжном гаджете RIP

Чего этот недочёт не даёт

  • Хост VMPL0, гипервизор, прошивка SNP
  • LVBS VTL1 (LvbsValidateAccess + STAC/CLAC)
  • sysretq на ядерный RIP (sanitize_for_user_return отказывает при не-пользовательском RIP/RSP)
  • Гостевой mmap / mprotect ядерного VA (TASK_ADDR_MAX)
  • NoValidation в пользовательском пространстве Linux/Windows (тот же процесс; границей там является seccomp, это родственный недочёт)
  • Само по себе это не нарушение конфиденциальности C-bit SEV-SNP. Это копирование через confused deputy внутри ядра SNP LiteBox

Как я это нашёл

litebox_platform_linux_kernel/src/lib.rs, строки 59-67 в v0.1.0. TODO всё ещё присутствует в main. В LVBS уже есть LvbsValidateAccess с USER_ADDR_MIN = 0x10000 и USER_ADDR_MAX = 0x7ffffffff000. У меня не было оборудования SNP. Лаборатория копирует закреплённый файл, реализует тождество против проверки диапазона и записывает свидетеля через NoValidation в целевые VA, которые проверка LVBS отклоняет.

Лаборатория

cd lab
./run.sh

Loopback 127.0.0.1:19130. Проект Compose litebox-snp-novalidation-userptr. Свидетель LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS. Последняя строка:

SUCCESS litebox-snp-novalidation-userptr novalidation-kernel-write-ok lvbs-range-reject pin-TODO-present user-range-copy-ok LITEBOX-SNP-NOVALIDATION-USERPTR-WITNESS

Исправление

Свяжите SNP UserPtr с той же проверкой диапазона пользовательского пространства, которая уже есть в LVBS (USER_ADDR_MIN..USER_ADDR_END), и держите копирования за таблицей исключений. Не оставляйте NoValidation на платформе ядра.

Приём сообщений от вендора — MSRC (https://msrc.microsoft.com/create-report). Не открывайте публичный issue на GitHub в microsoft/litebox.

Контакты

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

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