Вразливість у модулі ksmbd ядра Linux, що дозволяє віддалено виконати свій код

У модулі ksmbd, що включає вбудовану в ядро ​​Linux реалізацію файлового сервера на базі протоколу SMB, виявлено критичну вразливість, що дозволяє віддалено домогтися виконання свого коду з правами ядра. Атака може бути проведена без аутентифікації, щоб на системі був активований модуль ksmbd. Проблема проявляється починаючи з ядра 5.15, випущеного в листопаді 2021 року, і без зайвого розголосу усунуто в оновленнях 5.15.61, 5.18.18 та 5.19.2, сформованих у серпні 2022 року. Оскільки CVE-ідентифікатор проблемі ще не присвоєний, точну інформацію про усунення проблеми в дистрибутивах ще немає.

Деталі про експлуатацію вразливості поки не розкриваються, відомо лише те, що вразливість викликана зверненням до звільненої області пам'яті (Use-After-Free) через відсутність перевірки існування об'єкта перед виконанням з ним операцій. Проблема пов'язана з тим, що функції smb2_tree_disconnect() звільнялася пам'ять, вироблена під структуру ksmbd_tree_connect, але після цього ще залишався покажчик, який використовується при обробці певних зовнішніх запитів, що містять команди SMB2_TREE_DISCONNECT.

Крім згаданої вразливості в ksmbd також виправлено 4 менш небезпечні проблеми:

  • ZDI-22-1688 – віддалене виконання коду з правами ядра через відсутність у коді обробки атрибутів файлів перевірки фактичного розміру зовнішніх даних перед копіюванням у виділений буфер. Небезпека вразливості згладжує те, що атака може бути здійснена лише автентифікованим користувачем.
  • ZDI-22-1691 — видалений витік інформації з пам'яті ядра через некоректну перевірку вхідних параметрів в обробнику команди SMB2_WRITE (атака може бути здійснена лише автентифікованим користувачем).
  • ZDI-22-1687 - віддалений виклик відмови в обслуговуванні через вичерпання доступної в системі пам'яті через некоректне вивільнення ресурсів в обробнику команди SMB2_NEGOTIATE (атака може бути проведена без автентифікації).
  • ZDI-22-1689 - віддалений виклик краху ядра через відсутність належної перевірки параметрів команди SMB2_TREE_CONNECT, що призводить до читання з області поза буфером (атака може бути здійснена лише автентифікованим користувачем).

Підтримка забезпечення роботи SMB-сервера за допомогою модуля ksmbd є у пакеті Samba, починаючи з випуску 4.16.0. На відміну від SMB-сервера, що працює у просторі користувача, ksmbd більш ефективний з точки зору продуктивності, споживання пам'яті та інтеграції з розширеними можливостями ядра. Ksmbd подається як високопродуктивне та готове для застосування на вбудовуваних пристроях розширення до Samba, що при необхідності інтегрується з інструментами та бібліотеками Samba. Авторами коду ksmbd є Namjae Jeon з компанії Samsung і Hyunchul Lee з LG, а супроводом у складі ядра займається Стів Френч (Steve French) з компанії Microsoft, мейнтейнер підсистем CIFS/SMB2/SMB3 в ядрі Linux і давній учасник команди розробників Samba внесок у реалізацію підтримки протоколів SMB/CIFS у Samba та Linux.

Джерело: opennet.ru

Додати коментар або відгук