Denegación de servicio y revelación de información en FreeBSD

Iniciado por wolfbcn, 16 Septiembre 2018, 02:41 AM

0 Miembros y 1 Visitante están viendo este tema.

wolfbcn

Una vulnerabilidad en el procesador del formato ELF en el cargador de ejecutables permite forzar el apagado del sistema y extraer información del espacio de memoria del núcleo

Denegación de servicio y revelación de información sensible si puedes correr un ejecutable en la máquina. Ese es el impacto de la última vulnerabilidad reportada en FreeBSD, vulnerabilidad que se puede explotar a través de la ejecución de un ejecutable ELF especialmente diseñado. El código responsable de cargar los ejecutables en memoria es un código especialmente sensible, debido a la cantidad de veces que es llamado por el sistema operativo y a tener que tratar en el núcleo con datos que provienen del usuario.

Lo cierto es que la mayoría del código útil cumple la última condición y procesa en el núcleo datos que vienen del usuario. El problema real es la complejidad de los datos a procesar. Como ejemplo contrario al que nos ocupa, podemos pensar en una llamada al sistema que escribe datos a un archivo. Simplificando, esa llamada al sistema tendría tres argumentos: la ruta del archivo, los datos a escribir y la longitud de estos datos. Los datos a escribir no tienen complejidad alguna para ser procesados: pueden contener cualquier cosa, y se volcarán directamente al archivo. Lo único que debería respetarse es que la longitud de los datos fuese correcta, pero si no lo es, tampoco pasa nada. El sistema operativo volcará más datos de los reales, cogiendo del siguiente trozo de memoria, o llegando a cerrar el proceso que llama si por especificar mal la longitud termina leyendo memoria a la que no tiene acceso.

https://unaaldia.hispasec.com/2018/09/denegacion-de-servicio-y-revelacion-de.html
La mayoria pedimos consejo cuando sabemos la respuesta, pero queremos que nos den otra.