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

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

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

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

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

Категории

Все категории
Loading categories
vbox-lsilogic-sas-config — VirtualBox 7.2.20 — критическая уязвимость — локальная — путаница типов / произвольное чтение-запись — наложение SAS1068 CONFIG SCSI-SPI | Kitploit
Инструменты/GitHubGitHub/abraxas/vbox-lsilogic-sas-config
Криминалистика памятиАнализ уязвимостейЭксплуатацияОбратная инженерияВиртуализация для безопасностиСтатьи и ИсследованияЭксплуатация Бинарных Файлов
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
abraxas/vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

VirtualBox 7.2.20 — критическая уязвимость — локальная — путаница типов / произвольное чтение-запись — наложение SAS1068 CONFIG SCSI-SPI

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

Abraxas Labs - vbox-lsilogic-sas-config

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  vbox-lsilogic-sas-config

vbox-lsilogic-sas-config

Класс: путаница типов / произвольное чтение-запись Доступ: локальный (гость)

Oracle VM VirtualBox OSS 7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)

SAS1068 MPT CONFIG трактует SCSI-SPI Port 0 как 12-байтовую страницу. На SAS эта страница — вторая половина объединения: pManufacturingPage7 плюс cbManufacturingPage7. CONFIG READ от гостя через DMA утекает указатель кучи. CONFIG WRITE размещает указатель и размер. Затем manufacturing page 7 копирует данные через размещённый указатель.

Гость ring3 на подключённом SAS1068 (PDM LsiLogicSas, PCI 1000:0054) получает произвольное чтение/запись в процессе VM. Это куча VirtualBoxVM / VBoxHeadless, а не побег в ядро хоста.

IDCVE пока нет
Класспутаница типов / произвольное чтение-запись
Доступлокальный (гость)
CWECWE-843, CWE-822
CVSSКритический: 8.8 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
ПродуктVirtualBox OSS
Затронуто7.2.20 (f2792cf44)
Требуетсяподключённый SAS1068 (PDM LsiLogicSas, PCI 1000:0054)
ЛицензияGNU Affero GPL v3.0
Стендloopback-стенд с исходным кодом

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

Метод: гость ring3 программирует MMIO doorbell SAS1068 или request FIFO с MPT_MESSAGE_HDR_FUNCTION_CONFIG (0x04), тип страницы SCSI-SPI Port 0 (0x03). Диспетчеризация всегда вызывает SPI-геттер. Только EXTENDED ограничен SAS. Геттер атрибутов страницы закомментирован, поэтому страница Readonly Port 0 по-прежнему доступна для записи. SPI Port 0 упакован в 12 байт и накладывается на SasPages.pManufacturingPage7 (8) плюс cbManufacturingPage7 (4).

ПривилегияТипСтатусЧто даёт
CONFIG SCSI-SPI Port 0 READразведкадоказано на стендеDMA указателя кучи процесса VM pManufacturingPage7 и его размера в память гостя. Вход для ASLR.
CONFIG SCSI-SPI Port 0 WRITEцелостностьдоказано на стендеразмещение выбранного гостем указателя + размера поверх этих полей SAS
manufacturing page 7 CONFIG READцелостностьдоказано на стендекопирование байтов хоста с размещённого адреса в GPA гостя (VBOX-LSILOGIC-SAS-CONFIG-WITNESS)
manufacturing page 7 CONFIG WRITEцелостностьвыведено из того же геттеракопирование байтов гостя на размещённый адрес (произвольная запись в VirtualBoxVM)
SPI-страницы Port 1 / Device 0разведка / целостностьвыведено из наложенияPort 1 утекает/размещает pSASIOUnitPage0; Device 0 page 0 попадает в paPHYs; Device 0 page 1 попадает в pSASDeviceHead
произвольный размещённый указательдоступностьвыведенопадение процесса VM при следующем обращении к странице SAS или в lsilogicR3ConfigurationPagesFree

Закрыто смежное:

  • ядро хоста
  • другие VM
  • VBoxSVC
  • SPI LSI53C1030 по умолчанию для Windows-гостя (SpiPages — это реальная раскладка; для этой путаницы типов нужен SAS1068)
  • SAS EXTENDED-страницы на SPI-контроллере (VERR_NOT_FOUND)
  • токен усиления защиты Windows / AppContainer (это куча процесса VM, а не обход песочницы)

Это произвольное чтение/запись в процессе VM, а не побег в ядро хоста. Для полного доступа пользователя хоста всё ещё нужен оставшийся недостаток усиления защиты. Я не сочетал это с оставшейся записью 3D: VMSVGA DX11 UAF (d691aa68) закрыт на этой ревизии.

Без Guest Additions. Без 3D. Без VRDP. Не PUEL. Достаточно враждебного гостя ring3; встроенный драйвер mpt/mptsas не требуется.

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

Я остановился на OSS 7.2.20 после CPU за сентябрь 2026 и прошёлся по LsiLogic MPT CONFIG. Тихая утечка стека ответов 2026 года уже закрыта: 122c6880 обнуляет (RT_ZERO) MptReplyUnion при ошибке SCSI I/O. Я искал остаток этого класса, а не тот сток.

Остаток — это union, а не ответ в стеке:

union {
    MptConfigurationPagesSpi SpiPages;
    MptConfigurationPagesSas SasPages;
} u;  /* DevLsiLogicSCSI.h:3323 */

SAS alloc заполняет host-указатели SasPages и никогда не запускает инициализацию страницы SPI. Геттер порта SPI в DevLsiLogicSCSI.cpp:2795 не имеет проверки enmCtrlType. Случаи SPI в диспетчеризации CONFIG не ограничены. Геттер атрибута страницы закомментирован в cpp:3159. Manufacturing page 7 в cpp:2701 ограничена SAS, что является предполагаемым путём, и разыменовывает pManufacturingPage7 без проверки на NULL. Именно так типизированный SPI Port 0 READ/WRITE превращается в утечку и внедрение SAS-указателя.

Уже зафиксированные неверные повороты: повторная подача 122c6880; трактовка LSI53C1030 по умолчанию как этой ошибки; раздувание краха с диким указателем до побега из host-ядра; живая VM, когда достаточно упакованного оверлея. Театр: reverse shell. Оракул — данные фиктивной страницы CONTROL, затем утечка/внедрение/произвольное чтение VBOX-LSILOGIC-SAS-CONFIG-WITNESS.

Лаборатория

cd lab
./run.sh

Или python3 vbox-lsilogic-sas-config-Abraxas-Labs.py. Исходный harness структур pin. VirtualBox не загружается. Проект Compose vbox-lsilogic-sas-config, network_mode: none. Ничего не монтировать.

CONTROL: наложение чтения Port 0 с типом SPI — это данные фиктивной страницы, а не указатель кучи manufacturing-page-7.

SAS в замешательстве: READ Port 0 утекает pManufacturingPage7, совпадающий с calloc. WRITE Port 0 внедряет второй указатель буфера-свидетеля + размер. Геттер manufacturing page 7 вместе с CONFIG READ копирует свидетеля в массив GPA гостя.

SUCCESS vbox-lsilogic-sas-config leak=yes plant=yes arb-read=yes VBOX-LSILOGIC-SAS-CONFIG-WITNESS

Исправление

Ограничить типы страниц SCSI-SPI условием enmCtrlType == LSILOGICCTRLTYPE_SCSI_SPI. Восстановить проверку атрибутов страницы, чтобы Readonly Port 0 оставался доступным только для чтения. Добавить проверку на NULL для pManufacturingPage7 (и других указателей SAS) перед разыменованием. Прекратить наложение SpiPages и SasPages в одном объединении.

Ссылки

  • github.com/VirtualBox/virtualbox тег v7.2.20 (f2792cf44f663989818507e36d3db5f978523c5e)
  • DevLsiLogicSCSI.h объединение на строке 3323; размер SPI Port 0 равен 12 на строке 2251
  • DevLsiLogicSCSI.cpp выделение SAS на строке 619; геттер manufacturing на строке 2701; геттер SPI Port на строке 2795; атрибут страницы закомментирован на строке 3159; CONFIG READ/WRITE на строке 3293
  • Закрытый родственный случай, не относящийся к данному стоку: 122c6880 (стек ошибок SCSI I/O MptReplyUnion)
Скачать инструмент