Идентификувана е критична ранливост во модулот ksmbd, кој вклучува имплементација на сервер за датотеки базиран на протоколот 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, а во кернелот го одржува Стив Френч од Microsoft, одржувач на потсистемите CIFS/SMB2/SMB3 во кернелот Linux и долгогодишен член на тимот за развој на Samba, кој придонесе со значителен придонес. до имплементација на поддршка за SMB/CIFS протоколи во Samba и Linux.
Извор: opennet.ru
