CVSS 10.0 LXD, MicroCloud Flaw Lets Attackers Impersonate Trusted Clients Without a Private Key
Un fallo de seguridad crítico en las plataformas LXD y MicroCloud de Canonical permitía que un atacante iniciara sesión haciéndose pasar por un cliente de confianza, sin necesidad de poseer la clave privada de dicho cliente. Para lograr esta suplantación, el agresor debía tener acceso en red a la API HTTPS y contar con el certificado público del cliente legítimo. Al conseguir el acceso, el intruso obtenía las capacidades del usuario imitado, lo que incluía el control del clúster y de sus máquinas virtuales, pudiendo alcanzar privilegios de administrador en la máquina anfitriona si la cuenta comprometida contaba con dichos permisos.
El problema radicaba en el método que utilizaba el servidor para validar las credenciales a través de TLS mutuo. Aunque el sistema comparaba los certificados enviados con su lista de confianza, una conexión TLS únicamente valida que el cliente posea la clave privada del primer certificado de la cadena, mientras que el resto de los elementos adjuntos quedaban a elección del remitente. De este modo, un atacante podía utilizar un certificado público de un cliente confiable —información que no es secreta— y añadirlo a la cadena para que el servidor lo aceptara erróneamente.
Para explotar esta vulnerabilidad, identificada con una puntuación máxima y registrada bajo una clave específica, se requería conectividad de red hacia la API y el certificado público de un usuario previamente autorizado. Los servidores LXD independientes no exponen dicha interfaz de forma predeterminada a menos que un administrador active la configuración de red correspondiente. Sin embargo, MicroCloud presentaba una debilidad particular, ya que un atacante podía interceptar el certificado de un miembro al unirse al clúster para posteriormente autenticarse como dicho integrante.