Vulnerabilidad en la implementación del socket AF_PACKET del kernel de Linux

Tres años después de la ola de vulnerabilidades (1, 2, 3, 4, 5) en el subsistema AF_PACKET del kernel de Linux identificado un problema más (CVE-2020-14386), permitiendo a un usuario local sin privilegios ejecutar código como root o salir de contenedores aislados si tiene acceso root.

Crear un socket AF_PACKET y explotar la vulnerabilidad requiere privilegios CAP_NET_RAW. Sin embargo, un usuario sin privilegios puede obtener el permiso especificado en contenedores creados en sistemas con soporte para espacios de nombres de usuario habilitado. Por ejemplo, los espacios de nombres de usuario están habilitados de forma predeterminada en Ubuntu y Fedora, pero no en Debian y RHEL. En Android, el proceso del servidor de medios tiene derecho a crear sockets AF_PACKET, a través de los cuales se puede explotar la vulnerabilidad.

La vulnerabilidad está presente en la función tpacket_rcv y es causada por un error al calcular la variable netoff. Un atacante puede crear condiciones en las que la variable netoff se escribe en un valor menor que la variable maclen, lo que provocará un desbordamiento al calcular "macoff = netoff - maclen" y, posteriormente, configurar incorrectamente el puntero al búfer para los datos entrantes. Como resultado, un atacante puede iniciar la escritura de 1 a 10 bytes en un área más allá del límite del búfer asignado. Cabe señalar que se está desarrollando un exploit que le permite obtener derechos de root en el sistema.

El problema ha estado presente en el kernel desde julio de 2008, es decir. se manifiesta en todos los núcleos reales. La solución está actualmente disponible como parche. Puede realizar un seguimiento de la disponibilidad de actualizaciones de paquetes en distribuciones en las siguientes páginas: Ubuntu, Fedora, SUSE, Debian, RHEL, Arco.

Fuente: opennet.ru

Añadir un comentario