Две уязвимости в ksmbd Linux позволяют получить root через SMB

Две уязвимости в ksmbd Linux позволяют получить root через SMB

Две уязвимости в ksmbd Linux позволяют получить root через SMB

Без лишней мистики: исследователь в области кибербезопасности BitsByWill подробно разобрал две критические уязвимости в ksmbd — встроенном в ядро Linux SMB-сервере. Речь о CVE-2023-52440 и CVE-2023-4130 — и самое неприятное, что они отлично склеиваются в рабочую эксплойт-цепочку.

Первая уязвимость, CVE-2023-52440, описывается как контролируемое SLUB-переполнение в функции ksmbd_decode_ntlmssp_auth_blob().

Как пишет BitsByWill, длина sess_key_len контролируется пользователем, и при определённой подаче данных можно переполнить фиксированный буфер sess_key во время вызова cifs_arc4_crypt. Проще говоря — достаточно модифицировать одну строку в ntlm-клиентской библиотеке (в примере — Impacket), чтобы сгенерировать специально подготовленное NTLM-сообщение и получить неаутентифицированное удалённое переполнение буфера с контролем размера и содержимого.

Вторая уязвимость, CVE-2023-4130, — это чтение за пределами буфера (OOB read) в smb2_set_ea(). Из-за плохой проверки расширенных атрибутов (EA) злоумышленник с правом записи на шаре может заставить ksmbd неправильно интерпретировать структуру и считать дополнительные записи. В результате соседние данные кучи попадают в xattr, откуда их можно извлечь через SMB3 queryInfo. То есть брешь позволяет вытянуть части памяти ядра и, например, сломать KASLR.

И вот где всё становится опасно: переполнение даёт запись, чтение даёт утечку. Связав CVE-2023-52440 и CVE-2023-4130, BitsByWill показал рабочий путь до реального ROP-эксплойта.

Для демонстрации потребовались учётные данные пользователя с правом записи на шару, поэтому исследователь пишет о 0-click с аутентификацией — формулировка спорная, но смысл понятен: если админ разрешил анонимную запись в шаре, шанс эксплуатации становится ещё выше.

Авторы анализа подчёркивают практические сценарии: модификация таблиц страниц для произвольного чтения/записи, вынимание секретов из соседних процессов или подготовка ROP-цепочки для исполнения кода в контексте ядра. Всё это — классика эскалации привилегий, но в данном случае — прямо через SMB-интерфейс ядра.

Патчи уже вышли, и производители/поддерживающие дистрибутивы закрывали эти баги, но реальная угроза — не только в уязвимом коде, а в конфигурациях и устаревших системах. Как обычно, напомним: открытые для записи шар-ресурсы, устаревшее ПО и несвоевременное обновление — идеальная среда для подобных атак.

Подпишитесь на новости

ИИ спроектировал процессор уровня Arm Cortex-A53 без ручного описания схемы

Нейросетям уже мало писать код, они добрались до проектирования процессоров. Как сообщила команда проекта QiMeng, автоматически созданный CPU второй версии по производительности сопоставим с Arm Cortex-A53, знакомым по смартфонам прошлых поколений. До современных флагманов далеко, но это уже заметно сложнее очередной кнопки на сайте.

Результаты разработчики опубликовали на официальной странице QiMeng.

Исследователи автоматизируют создание логики процессора по примерам входных данных и ожидаемых результатов. В традиционном подходе инженеры сначала вручную описывают схему на специальном языке. Здесь значительную часть этой работы берёт на себя алгоритм.

Предыдущая версия, QiMeng-CPU-v1, получила проект RISC-V-процессора за пять часов. Чип затем изготовили: он смог запустить Linux и показал производительность, сопоставимую с Intel 80486SX.


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

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

RSS: Новости на портале Anti-Malware.ru