3 vulnerabilidades en el Kernel de Linux permiten escalar privilegios

febrero 06, 2021 , 0 Comments

Durante la ultima semana se dieron a conocer las noticias sobre tres vulnerabilidades que fueron identificadas tres vulnerabilidades en el kernel de Linux que potencialmente permiten a un usuario local elevar sus privilegios en el sistema.

Una de las vulnerabilidades reportadas (CVE-2021-26708) fue encontrada en la implementación de sockets con direccionamiento AF_VSOCK, destinados al networking entre aplicaciones huésped y host. El problema se debe a una condición de carrera al configurar bloqueos para manejar el transporte múltiple (transporte múltiple VSOCK).

El investigador que identificó la vulnerabilidad afirma haber creado un exploit funcional que le permite obtener derechos de root en Fedora Server 33, sin pasar por los mecanismos de protección SMEP (Supervisor Mode Execution Prevention) y SMAP (Supervisor Mode Access Prevention). El código de explotación se publicará después de la distribución general de actualizaciones.

La vulnerabilidad ha aparecido desde v5.5-rc1 y se ha corregido en la actualización 5.10.13. En RHEL, el problema solo se manifiesta desde la versión 8.3 (kernel 4.18.0-240), que introdujo el soporte VSOCK. Las ramas estables de Debian y SUSE no se ven afectadas por el problema. En Ubuntu, el estado de la vulnerabilidad aún no se ha determinado.

Otra de las vulnerabilidades reportadas es (CVE-2021-3347) que podría permitir la ejecución de código a nivel de kernel a través de la manipulación futex. El problema se debe al acceso a un área de memoria ya liberada (use-after-free) mientras se maneja una excepción.

Aún no hay información sobre la existencia de un exploit, pero el exploit para la antigua vulnerabilidad futex CVE-2014-3153, que se encontró en 2014, que apareció en el último mes, puede indicar la posibilidad de explotar esta clase de problemas.

El problema se ha manifestado desde 2008 y potencialmente afecta a todas las distribuciones. La vulnerabilidad ya se ha solucionado en SUSE, Fedora y parcialmente en Debian. En Ubuntu y RHEL, el problema aún no se ha solucionado.

Abordar un problema de larga data en el que el espacio de usuario forma parte de futex no se puede escribir. El kernel regresa con un estado inconsistente que puede, en el peor de los casos, resultar en un UAF de un kernel de tareas apilar.

La solución es establecer un estado de kernel consistente que haga las operaciones futuras en el futex fallan porque el espacio de usuario y el kernel el estado del espacio es inconsistente. No es un problema ya que PI funciona fundamentalmente requieren un mapeo RW funcional y si el espacio de usuario
tira de la alfombra debajo de ella, luego puede guardar las piezas que pidió.

La última de las vulnerabilidades reportadas es (CVE-2021-20226) en la interfaz de E/S asincrónica io_uring, causada por acceder a un bloque de memoria ya liberado (use-after-free) mientras se procesan descriptores de archivos debido a una verificación incorrecta de la existencia de un objeto antes de realizar la operación IORING_OP_CLOSE.

De acuerdo a Red Hat, la vulnerabilidad se limita a una denegación de servicio o pérdida de memoria del kernel, pero de acuerdo a la Iniciativa Día Cero, la vulnerabilidad permite a un usuario local para ejecutar código en el nivel del núcleo.

Se encontró una falla de uso posterior a libre en io_uring en el kernel de Linux, donde un atacante local con privilegios de usuario podría provocar una denegación de servicio problema en el sistema

El problema surge de la falta de validación de la existencia de un objeto antes de realizar operaciones en el objeto sin incrementar el archivo contador de referencia mientras está en uso.

La vulnerabilidad se ha manifestado desde el kernel 5.5 y se ha corregido en el kernel 5.10.2 (según otras fuentes, se incluyó un parche con la eliminación de la vulnerabilidad en el kernel 5.9-rc1). El problema ya se ha solucionado en Fedora.

En las ramas estables de RHEL y Debian, el problema no aparece. El estado de la vulnerabilidad en Ubuntu aún no se ha determinado.

Finalmente si estás interesado en conocer más al respecto, puedes consultar los detalles en los siguientes enlaces.

CVE-2021-26708, CVE-2021-3347, CVE-2021-20226

 


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.