Identificouse unha vulnerabilidade crítica no módulo ksmbd, que inclúe unha implementación dun servidor de ficheiros baseado no protocolo SMB integrado no núcleo de Linux, que che permite executar o teu código de forma remota con dereitos de núcleo. O ataque pódese realizar sen autenticación; é suficiente que o módulo ksmbd estea activado no sistema. O problema aparece dende o núcleo 5.15, lanzado en novembro de 2021, e solucionouse silenciosamente nas actualizacións 5.15.61, 5.18.18 e 5.19.2, publicadas en agosto de 2022. Dado que o identificador CVE aínda non se asignou ao problema, non hai información exacta sobre como solucionar o problema nas distribucións.
Aínda non se revelaron os detalles sobre a explotación da vulnerabilidade; só se sabe que a vulnerabilidade prodúcese ao acceder a unha área de memoria xa liberada (Use-After-Free) debido á falta de comprobar a existencia dun obxecto antes de realizar operacións. sobre el. O problema débese a que a función smb2_tree_disconnect() liberou a memoria asignada para a estrutura ksmbd_tree_connect, pero despois diso aínda se utilizou un punteiro ao procesar certas solicitudes externas que conteñan ordes SMB2_TREE_DISCONNECT.
Ademais da mencionada vulnerabilidade, tamén se solucionaron 4 problemas menos perigosos en ksmbd:
- ZDI-22-1688 - execución remota de código con dereitos do núcleo debido a que o código de procesamento do atributo do ficheiro non comproba o tamaño real dos datos externos antes de copialos nun búfer dedicado. A vulnerabilidade vese mitigada polo feito de que o ataque só pode ser realizado por un usuario autenticado.
- ZDI-22-1691: fuga de información remota da memoria do núcleo debido á comprobación incorrecta dos parámetros de entrada no manejador de comandos SMB2_WRITE (o ataque só pode ser realizado por un usuario autenticado).
- ZDI-22-1687 - denegación de servizo remota causada polo esgotamento da memoria dispoñible no sistema debido á liberación incorrecta de recursos no controlador de comandos SMB2_NEGOTIATE (o ataque pódese realizar sen autenticación).
- ZDI-22-1689 - Un fallo do núcleo remoto causado por non comprobar correctamente os parámetros do comando SMB2_TREE_CONNECT, o que resulta nunha lectura desde unha área fóra do búfer (o ataque só pode ser realizado por un usuario autenticado).
O soporte para executar un servidor SMB usando o módulo ksmbd estivo presente no paquete Samba desde a versión 4.16.0. A diferenza dun servidor SMB de espazo de usuario, ksmbd é máis eficiente en termos de rendemento, consumo de memoria e integración con funcións avanzadas do núcleo. Ksmbd preséntase como unha extensión Samba de alto rendemento e preparada para integrar que se integra coas ferramentas e bibliotecas de Samba segundo sexa necesario. O código ksmbd foi escrito por Namjae Jeon de Samsung e Hyunchul Lee de LG, e o kernel é mantido por Steve French de Microsoft, mantedor dos subsistemas CIFS/SMB2/SMB3 no núcleo de Linux e membro dende hai moito tempo do equipo de desenvolvemento de Samba. , que contribuíu significativamente á implementación do soporte para os protocolos SMB/CIFS en Samba e Linux.
Fonte: opennet.ru