
Участники проекта Zero Day Initiative (ZDI) компании Trend Micro выложили в паблик информацию о чрезвычайно опасной RCE-уязвимости в ksmbd — модуле ядра Linux, реализующем серверную часть протокола SMB3 для обмена файлами по стандарту Samba.
Соответствующий отчет о находке был подан в конце июля; дыру быстро залатали, но обнародовали этот факт лишь вчера, 22 декабря. Согласно бюллетеню ZDI, уязвимость связана с возможностью использования освобожденной памяти и проявляется при обработке команд smb2_tree_disconnect.
Причиной появления проблемы, оцененной в 10 баллов из 10 возможных по CVSS, является отсутствие проверки существования объекта до выполнения операций над ним. Эксплойт не требует аутентификации и позволяет удаленно выполнить любой код в контексте ядра.
Уязвимости подвержены все Linux-системы с включенным ksmbd (модуль был добавлен в ядро в прошлом году, с выпуском ветки 5.15). Проблему негласно устранили в августе, выпустив обновления 5.15.61, 5.18.18 и 5.19.2.
Кроме 10-балльной уязвимости, в ksmbd закрыли четыре менее опасные дыры:
- ZDI-22-1691 — возможность чтения за границами буфера, возникающая при обработке команд SMB2_WRITE; эксплойт требует аутентификации и грозит раскрытием конфиденциальной информации, а связке с другими уязвимостями — выполнением произвольного кода на уровне ядра;
- ZDI-22-1688 — переполнение буфера в куче при обработке атрибутов файлов; эксплойт требует аутентификации и позволяет удалённо выполнить произвольный код в контексте ядра;
- ZDI-22-1689 — чтение за границами буфера при обработке команд SMB2_TREE_CONNECT; эксплойт требует аутентификации и позволяет вызвать состояние отказа в обслуживании (DoS);
- ZDI-22-1687 — исчерпание памяти при обработке команд SMB2_NEGOTIATE; эксплойт не требует аутентификации и может повлечь DoS.