Fecha de publicación: Lun, 07/03/2022 - 11:24

Alerta de seguridad

Nivel de peligrosidad: Crítico

Descripción

La deficiencia reside en una función del kernel de Linux llamada grupos de control, también conocido como cgroups versión 1 (v1), que permite organizar procesos en grupos jerárquicos, lo que permite limitar y monitorear el uso de recursos como CPU, memoria, E/S de disco y red.

Una de las características de cgroups v1 es la Release_agent. Permite a los administradores configurar un programa de "agente de liberación" que se ejecutaría al finalizar un proceso en el grupo c. Esto se hace escribiendo la ruta deseada del agente de liberación al Release_agent, como se muestra a continuación:

$ echo /bin/my-release-agent > /sys/fs/cgroup/memory/release_agent

Los Release_agent son visibles en el directorio raíz del cgroup y afecta a todos sus grupos secundarios. Cada grupo secundario se puede configurar para activar o no acitvar el agente de liberación (al finalizar uno de sus procesos) escribiendo al notifi_on_release file. Los siguientes comandos habilitan la funcionalidad:

$ echo 1 > /sys/fs/cgroup/memory/a_child_cgroup_on_release

Cuando un proceso muere, el núcleo verifica si sus grupos c tenían notify_on_release habilitado y, de ser así genera la configuración Release_agent binario, el agente de lanzamiento se ejecuta con los permisos más altos posibles: un proceso raíz con todas las capacidades en los espacios de nombres iniciales. Como tal, la configuración del agente de liberación se considera una operación privilegiada, ya que permite decidir que binario se ejecutará con permisos root completos. 

CVE-2022-0492 proviene de una verificación faltante. Linux simplemente no verificó que el proceso configurara el Release_agent el archivo tiene privilegios administrativos (es decir la CAP_SYS_ADMIN). 

Recursos afectados

Afecta a todos los productos y versiones de Linux.

Solución/Mitigación

Los usuarios de linux deben de actualizar a la última versión de seguridad del kernel de linux.

En caso de no poder actualizar, para protegerse contra contenedores maliciosos los usuarios pueden habilitar una de las siguientes mitigaciones:

  1. Habilitar AppArmor o SELinux. 
  2. Habilitar Seccomp

Pruebas de concepto

Palo Alto Networks publicó una prueba de concepto en su repositorio de github.

Recomendaciones

Se recomienda encarecidamente a todos los usuarios de Linux que actualicen a la última versión del kernel de su distribución respectiva.

Referencias

Vulnerabilidad crítica encontrada en el kernel de Linux