Найденная ИИ уязвимость в ядре Linux дает локальным пользователям права root и позволяет гостевой системе выйти на хост

Linux уязвимость безопасность Vghost Cve ядро thehackernews.com

Обнаружена критическая уязвимость Vghost (CVE-2026-74580) в ядре Linux. Получите root-права и компрометируйте хост из виртуальной машины. Устраните риск немедленно!

Уязвимость в подсистеме vhost ядра Linux позволяет локальному пользователю произвольно читать и записывать память ядра, а также получать права root практически во всех версиях ядра за последние десять лет. В одной из конфигураций виртуализации она дает возможность недоверенной виртуальной машине записывать данные в память хоста и перехватывать управление программой, управляющей виртуальной машиной.
Ошибка отслеживается как CVE-2026-74580 и получила название Vghost. Лаборатория Tencent Zhuque, обнаружившая уязвимость, выпустила исправление 3 августа и опубликовала подробное описание 12 октября с рабочими демонстрациями обеих атак. Пока нет никаких публичных признаков того, что она была использована.
vhost — это часть ядра Linux, которая ускоряет сетевой ввод-вывод и другие операции ввода-вывода для виртуальных машин и контейнеров. Локальный пользователь получает доступ к ней, открывая узел устройства, обычно /dev/vhost-net или /dev/vhost-vsock.
На стороне хоста уязвимость предоставляет непривилегированному пользователю надежный способ чтения и записи любого адреса ядра, обхода KASLR и повышения привилегий до root. Атака детерминирована: она не требует предварительной подготовки памяти или удачного стечения обстоятельств.
Вторая атака более специфична. Когда устройство virtio виртуальной машины находится за виртуальным IOMMU с включенным параметром iommu_platform, а vhost работает в режиме device-IOTLB, недоверенный гость может вызвать ту же ошибку и заставить ядро хоста выполнить запись за пределами выделенной области в процесс QEMU хоста. Оттуда гость может перезаписать указатель функции в QEMU и получить контроль над дальнейшим выполнением процесса хоста или вызвать его сбой.
vhost хранит небольшой кэш отображений памяти для каждого виртуального кольца и общих очередей, которые он использует для передачи данных. Попадание в кэш рассматривается как подтверждение того, что область уже была проверена. Кэш очищается при обновлении или аннулировании отображения и при сбросе очереди, но не при изменении адресов или размера кольца командами VHOST_SET_VRING_ADDR или VHOST_SET_VRING_NUM, пока очередь активна.
При подключенном устройстве IOTLB эти команды принимают новые адреса без их проверки, откладывая проверку на более поздний этап. После заполнения кэша последующая проверка никогда не выполняется, и vhost продолжает транслировать новые адреса, используя старое отображение. Затем ядро копирует данные по этому указателю без проверки границ, поэтому запись в используемое кольцо или чтение дескриптора выходит за пределы отображенной области. Это дает атакующему возможность читать и записывать память ядра.
Уязвимость существовала в коде около девяти лет, поскольку для ее создания потребовались два последовательных изменения. Изменение в 2017 году (Linux 4.11) добавило кэш и его сокращенный путь проверки. Изменение в 2020 году (Linux 5.9) перенесло проверку адресов из команды в более поздний этап, удалив проверку, которая в противном случае обнаружила бы устаревшую трансляцию.
Уязвимость затрагивает ядра Linux от 4.11 до 7.2-rc4. Tencent воспроизвела полную цепочку атак от локального пользователя до root на ядрах пяти дистрибутивов: Ubuntu 26.04, RHEL 9.8, Amazon Linux 2023, Microsoft Azure Linux 3.0 и Oracle Linux 10.2. В Ubuntu узел устройства был ограничен группой kvm, поэтому отправной точкой был член этой группы, а не любой пользователь.
На четырех других протестированных образах узел был доступен для чтения всем пользователям с правами доступа 0666, поэтому любой локальный пользователь мог получить к нему доступ.
Исправление (коммит de845981da67) очищает кэш при каждой переконфигурации кольца. Установите ядро, содержащее это исправление, и перезагрузитесь. Ниже перечислены первые исправленные стабильные версии ядра; поставщики также могут бэкпортировать исправление без изменения номера версии.
Red Hat, Amazon Linux и Oracle Linux выпустили исправления. Ubuntu исправила 22.04 и по состоянию на 13 октября все еще указывает, что ядра 24.04 и 26.04 находятся в процессе исправления.
До установки исправленного ядра ограничьте доступ к узлам устройств vhost. Удалите общий доступ к /dev/vhost-net и /dev/vhost-vsock, ограничьте группу владельцев доверенными службами виртуализации и рассматривайте членство в этой группе как привилегию во время работы уязвимого ядра.
Временных обходных путей для побега из гостевой системы на хост не существует; для этого пути единственным решением является патч ядра.
Уязвимость имеет высокий, а не критический рейтинг, и оценщики расходятся во мнениях относительно степени ее серьезности. Команда kernel.org CVE оценивает ее в 8.8 и отмечает изменение области действия, поскольку запись из гостевой системы на хост достигает памяти в процессе QEMU хоста и пересекает границу между гостевой системой и ее хостом.
Red Hat оценивает ее в 7.3 и отмечает неизменность области действия, рассматривая влияние как остающееся в пределах доверительной границы самого хоста; она также оценивает влияние на целостность ниже. Amazon оценил ее в 7.8, а Oracle — в 7.3.
Ошибка была обнаружена с помощью Corvus AI, многоагентной системы, разработанной Tencent для исследования уязвимостей ядра. В исправлении для основного проекта указано поле Assisted-by, и Tencent заявляет, что конвейер обнаружил уязвимость.
Это исследование с использованием машинной помощи, а не атака, выполненная ИИ. Это та же команда и конвейер, которые стоят за 18-летней уязвимостью SCTP в Linux, раскрытой в августе, которая также позволяла получить root-доступ и, по результатам тестирования, выйти из контейнера.

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

В тренде:

Похожие новости: