Linux Adictos Darkcrizt  

Detectaron una vulnerabilidad en el kernel de Linux que permite ejecutar código remotamente 

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace poco se dio a conocer la noticia de que fue identificad una vulnerabilidad crítica en el módulo ksmbd, que se incluye dentro de una implementación de un servidor de archivos basado en el protocolo SMB integrado en el kernel de Linux.

El fallo detectado permite lograr de forma remota la ejecución de código con derechos de kernel. El ataque se puede realizar sin autenticación, basta con que el módulo ksmbd esté activado en el sistema.

De momento los detalles exactos sobre el método utilizado para la explotación de la vulnerabilidad aún no han sido revelados, solo se sabe que la vulnerabilidad es causada por acceder a un área de memoria ya liberada (Use-After-Free) debido a la falta de verificar la existencia de un objeto antes de realizar operaciones con eso.

DETALLES DE LA VULNERABILIDAD
Esta vulnerabilidad permite a los atacantes remotos ejecutar código arbitrario en las instalaciones afectadas del Kernel de Linux. No se requiere autenticación para explotar esta vulnerabilidad, pero solo los sistemas con ksmbd habilitado son vulnerables.

La falla específica existe dentro del procesamiento de los comandos SMB2_TREE_DISCONNECT. El problema se debe a la falta de validación de la existencia de un objeto antes de realizar operaciones en el objeto. Un atacante puede aprovechar esta vulnerabilidad para ejecutar código en el contexto del kernel.

Se menciona que el problema está relacionado con el hecho de que en la función smb2_tree_disconnect(), se liberó la memoria asignada para la estructura ksmbd_tree_connect, pero después de eso todavía se usaba un puntero al procesar ciertas solicitudes externas que contenían comandos SMB2_TREE_DISCONNECT.

Además de la vulnerabilidad mencionada en ksmbd, también se corrigen 4 problemas menos peligrosos:

  • ZDI-22-1688: ejecución remota de código con derechos de kernel debido a la falta de verificación del tamaño real de los datos externos antes de copiarlos en el búfer asignado en el código de procesamiento de atributos del archivo. El peligro de la vulnerabilidad se ve mitigado por el hecho de que el ataque solo puede ser realizado por un usuario autenticado.
  • ZDI-22-1691: fuga de información remota de la memoria del kernel debido a una verificación incorrecta de los parámetros de entrada en el controlador de comandos SMB2_WRITE (el ataque solo puede ser realizado por un usuario autenticado).
  • ZDI-22-1687: Llamada remota de denegación de servicio debido al agotamiento de la memoria disponible en el sistema debido a una liberación incorrecta de recursos en el controlador de comandos SMB2_NEGOTIATE (el ataque puede llevarse a cabo sin autenticación).
  • ZDI-22-1689: falla del kernel remoto debido a la falta de una verificación adecuada de los parámetros del comando SMB2_TREE_CONNECT, lo que da como resultado una lectura fuera del área del búfer (el ataque solo puede ser realizado por un usuario autenticado).

El soporte para ejecutar un servidor SMB usando el módulo ksmbd ha estado en el paquete Samba desde la versión 4.16.0.

A diferencia de un servidor SMB de espacio de usuario, ksmbd es más eficiente en términos de rendimiento, consumo de memoria e integración con características avanzadas del kernel. Ksmbd se promociona como una extensión de Samba lista para integrar y de alto rendimiento, que se integra con las herramientas y bibliotecas de Samba según sea necesario.

El código ksmbd fue escrito por Namjae Jeon de Samsung y Hyunchul Lee de LG, y mantenido por Steve French en el núcleo) de Microsoft, mantenedor de los subsistemas CIFS/SMB2/SMB3 en el kernel de Linux y miembro desde hace mucho tiempo del equipo de desarrollo de Samba, que ha realizado importantes contribuciones a la implementación del soporte del protocolo SMB/CIFS en Samba y Linux.

Cabe mencionar que el problema ha estado presente desde el kernel 5.15, lanzado en noviembre de 2021, y se solucionó silenciosamente en las actualizaciones 5.15.61, 5.18.18 y 5.19.2, generadas en agosto de 2022. Dado que al problema aún no se le ha asignado un identificador CVE, aún no hay información exacta sobre cómo solucionar el problema en las distribuciones.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.