Какие Linux-серверы могут оказаться уязвимы к двум критическим ошибкам KSMBD?

Две ошибки удалённого выполнения кода в KSMBD, встроенном в ядро Linux SMB-сервере, получили оценку CVSS 9.0 от Zero Day Initiative (ZDI) компании Trend Micro. Сообщения об уязвимостях появились в публичных списках рассылки ядра до публикации исправлений. По состоянию на четверг, для обеих ошибок не было указано исправления ни в основной ветке Linux, ни в linux-next — дереве интеграции изменений, которые готовятся к включению в основную ветку.
Какие Linux-серверы могут оказаться уязвимы к двум критическим ошибкам KSMBD?
Изображение носит иллюстративный характер

Уязвимость ZDI-CAN-33549 затрагивает обработку SMB Direct. Для атаки нужна сетевая карта с поддержкой RDMA — аппаратная или программный драйвер rxe, — доступная для записи папка KSMBD и клиент, который согласует SMB Direct. Клиент передаёт описатели RDMA-буферов: первый из них длиннее заявленного объёма данных. Счётчик размера на сервере может переполниться, после чего копирование данных выйдет за пределы выделенного буфера. Это создаёт возможность удалённого выполнения кода.
По данным Phoronix, сопровождающий SMB Direct Стефан Метцмахер (Stefan Metzmacher) отправил исправление, рассчитанное на следующий цикл разработки ядра. Однако Phoronix уточнил, что эта информация не подтверждена другими источниками. На момент публикации в основной ветке и linux-next исправление не значилось.
Вторая ошибка, ZDI-CAN-33774, находится в механизме диспетчеризации протокола KSMBD и также получила CVSS 9.0. В отчёте говорится, что для атаки не требуется аутентификация: потенциальной мишенью может стать любой сервер с KSMBD, доступный на порту 445. Если злоумышленник уже получил доступ к общей папке, появляется также путь к записи за границы буфера. Исправления в mainline и linux-next на указанный четверг не было.
Ни одной из двух уязвимостей пока не присвоен идентификатор CVE. Проект ядра назначает такие номера после появления исправления в стабильной ветке. Обычно изменения из основной ветки добираются до стабильных выпусков за несколько недель, а затем обновления попадают в ядра дистрибутивов. Это означает, что время появления исправления у пользователей зависит и от графика их дистрибутива.
Проверить, запущен ли KSMBD, можно командами systemctl status ksmbd или lsmod | grep ksmbd. Согласно документации поддержки Red Hat, Red Hat Enterprise Linux (RHEL) не включает KSMBD по умолчанию. Поэтому наличие Linux-сервера само по себе ещё не означает, что он подвержен именно этим ошибкам: нужно проверить, используется ли KSMBD и доступен ли он из сети.
В списке ZDI были и три сообщения, не связанные с SMB. ZDI-CAN-33367 — локальное повышение привилегий в сетевом стеке Linux, в компоненте skb_zerocopy; исследователь p1r0x обнаружил эту ошибку, для эксплуатации нужен локальный доступ, оценка составляет CVSS 7.8. ZDI-CAN-34068 — локальное повышение привилегий в драйвере виртуальной графики VMware vmwgfx, CVSS 8.8. ZDI-CAN-34076 — раскрытие информации в драйвере NVMe target nvmet, CVSS 8.6. Эти три ошибки не затрагивают KSMBD-серверы. В отчётах в качестве обнаружившей стороны указана TrendAI, ИИ-сканер Trend Micro.
Сопровождающий стабильную ветку ядра Грег Кроа-Хартман (Greg Kroah-Hartman) ответил на три из пяти сообщений об ошибках ядра почти одновременно. В ответе на отчёт о VMware vmwgfx он написал: «По какой-то причине вы отправили это в публичные списки и не приложили патч, так что мы мало что можем с этим сделать». Через 17 секунд, отвечая на сообщение об NVMe-драйвере, он добавил: «Снова нет патча, и снова отправлено в публичный список? Пожалуйста, исправьте процесс подачи сообщений».
Отдельно от ошибок ядра в списке фигурирует ZDI-CAN-32005 — переполнение буфера в ConnMan. Это сетевой демон, не входящий в состав ядра Linux. Итого из пяти перечисленных сообщений об ошибках ядра две касаются KSMBD и имеют оценку CVSS 9.0; три других относятся к сетевому стеку, виртуальному GPU VMware и NVMe target.


Новое на сайте

Ссылка