Una vulnerabilidad en el código de netfilter permite la elevación local de privilegios
Muchas tecnologías de alto nivel de la industria informática, de hecho la mayoría, se construyen sobre funciones ya existentes. Los contenedores son un buen ejemplo de ello. Esta capa de virtualización ligera se construye sobre una base que, entre otras cosas, depende en gran medida de los cgroups. Los cgroups, también conocidos como grupos de control, son una abstracción que permite separar componentes específicos del sistema, como la memoria, la CPU o la red, por niveles de acceso. Esto es útil para ocultar partes del sistema de procesos específicos que se ejecutan en él, permitiendo que algunos procesos se ejecuten "aislados" del resto del sistema o "dentro de un contenedor".
Pero esta superposición de tecnologías conlleva algunos riesgos. Cuando aparece una vulnerabilidad que afecta a uno de los componentes de la base, toda la pila es potencialmente vulnerable. Esto es lo que ha ocurrido con CVE-2022-25636, una vulnerabilidad divulgada recientemente que afecta al código de red de cgroups. Afecta a las distribuciones que ejecutan Kernel 4.18.0-240.el8 y superiores (RHEL 8 y derivados como AlmaLinux 8, CentOS 8, Oracle EL 8, así como Ubuntu y otros). Permite la escalada de privilegios para usuarios locales. Los parches de KernelCare Enterprise estarán disponibles en breve y este post se actualizará para reflejar dicha disponibilidad en cuanto se produzca.
El problema real existe en la función nft_fwd_dup_netdev_offload, en el archivo net/netfilter/nf_dup_netdev.c dentro del árbol de código fuente del núcleo de Linux. Esto es parte de netfilter, que a su vez es el código responsable de la gestión de paquetes de red y sustenta cosas comunes como la tecnología de cortafuegos iptables. El código específico se utiliza, principalmente, en el contexto de cgroups de red, a su vez por Contenedores, donde permite la segregación del tráfico de red entre diferentes contenedores y el sistema anfitrión.
Se descubrió que un usuario local podía desencadenar un acceso a memoria fuera de los límites en esta función y corromper ubicaciones de memoria específicas. El informe original sobre la vulnerabilidad incluía un código de explotación que mostraba el problema y permitía la elevación local de privilegios. A esta vulnerabilidad se le asignó una puntuación de 7,8 (CVSS 3) que refleja su impacto y facilidad de explotación, así como la existencia de código de explotación fácilmente disponible.
Aunque el código afectado se introdujo con la versión 5.4 del kernel de Linux, como parte de los procesos normales de soporte, se retroportó a versiones más antiguas como las incluidas en la familia de distribuciones Enterprise Linux 8 (RHEL 8, CentOS 8, AlmaLinux 8, etc.). En estos casos, se puede comprobar si la versión del kernel en ejecución es 4.18.0-240.el8 o superior, y si es así, el sistema será vulnerable.
Existen medidas de mitigación que pueden aplicarse a los sistemas afectados hasta que se disponga de un parche, pero dependen en gran medida de que la funcionalidad afectada no sea crítica. Si el sistema está ejecutando contenedores, se verán afectados, y se debe emplear el mejor juicio para sopesar los pros y los contras de tales mitigaciones. Es posible evitar la funcionalidad afectada ejecutando:
echo 0 > /proc/sys/user/max_user_namespaces |
Este cambio se revertirá al reiniciar el sistema. Para un método más detallado y permanente de desactivar esta funcionalidad, consulte la sección de mitigación que se encuentra aquí. Una vez más, es importante destacar que esto afectará a la ejecución regular de contenedores y sólo debe ser desplegado donde esto sería aceptable. Por ejemplo, si el sistema no está ejecutando cargas de trabajo en contenedores.
Se están preparando parches activos para las distribuciones soportadas y afectadas, que se pondrán a disposición de los suscriptores del servicio KernelCare Enterprise en los próximos días. Este post se actualizará para reflejar la disponibilidad real de los parches a medida que se finalicen el desarrollo y las pruebas para cada distribución.
Para obtener más información sobre KernelCare Enterprise y otros productos TuxCare que mejoran la seguridad de su sistema sin afectar al tiempo de actividad, consulte https://tuxcare.com/live-patching-services/.
