Se ha identificado una vulnerabilidad de seguridad crítica en AZNFS-mount, una utilidad de Azure que posibilita a atacantes elevar sus privilegios desde un nivel de usuario sin privilegios hasta el nivel root en sistemas Linux. Esta vulnerabilidad impacta a todas las versiones de la utilidad hasta la 2.0.10, la cual se encuentra preinstalada en las imágenes de Azure HPC/AI.
La deficiencia de seguridad reside en un método convencional de escalada de privilegios que explota un binario con el bit Set User ID (SUID) activado, el cual forma parte de la instalación de la utilidad de montaje AZNFS, según lo indicado por Varonis en un informe compartido con Cyber Security News.
Esta utilidad está diseñada para montar puntos finales NFS provenientes de cuentas de Azure Storage, facilitando a los usuarios un acceso fiable a Azure Blob Storage a través de NFS, incluso cuando las direcciones IP de los puntos finales experimentan cambios.
La instalación de AZNFS Mount se realiza mediante un script (aznfs_install.sh) que se ejecuta con privilegios de superusuario (root). Este proceso crea archivos binarios que operan con dichos privilegios para establecer los puntos de montaje y modificar las reglas DNAT.
La vulnerabilidad radica en el binario mount.aznfs, que se instala con permisos SUID y utiliza una función C insegura que puede explotarse para ejecutar comandos arbitrarios con privilegios de root.
«Cuando los usuarios ejecutan ‘mount -t aznfs’, ejecuta el binario vulnerable ‘mount.aznfs’, que llama a un script para crear el punto de montaje», explicaron los investigadores de Varonis en su divulgación publicada a principios de esta semana.
La vulnerabilidad se centra en el binario mount.aznfs, que está empaquetado con el modo de archivo 4755, lo que significa que el bit SUID está activado y cualquiera puede ejecutarlo.
El binario ejecuta un archivo Bash ubicado en /opt/microsoft/aznfs/mountscript.sh usando la función execv, que conserva las variables de entorno originales.
La explotación implica manipular la variable de entorno BASH_ENV. Según los investigadores de Varonis, «al establecer BASH_ENV en un valor como ‘$(comando)’, Bash ejecuta el comando e intenta evaluar su resultado como un nombre de archivo para cargar».
Esto permite a los atacantes ejecutar comandos arbitrarios como root, lo que potencialmente les permite montar contenedores de almacenamiento adicionales, instalar malware o moverse lateralmente a través de redes y entornos de nube.
A pesar de que Azure lo clasificó como de baja gravedad, se ha combinado una solución con la versión 2.0.11 de la utilidad AZNFS-mount. Los clientes de Azure que utilicen imágenes de Azure HPC o utilicen NFS para Azure Storage deben habilitar inmediatamente la función de actualización automática de la utilidad o actualizar manualmente a la última versión.
El controlador blob-csi de Kubernetes ya se actualizó a la versión parcheada como parte de sus actualizaciones de seguridad, lo que indica la importancia de este parche a pesar de su clasificación de «baja gravedad».
Azure Blob Storage, una solución de almacenamiento en la nube ampliamente utilizada de Microsoft, ofrece múltiples métodos de acceso, incluyendo la API REST, SFTP y el protocolo NFS.
Es crucial tener en cuenta que el acceso mediante NFS no es compatible con otros modelos de permisos de Azure Storage, tales como los controles de acceso basados en roles y atributos. El punto final NFS carece de mecanismos de control de acceso, lo que implica que el acceso al punto final concede acceso a todos los objetos contenidos en el respectivo contenedor de almacenamiento.
Se recomienda encarecidamente a las organizaciones que emplean el almacenamiento de Azure que realicen revisiones periódicas de sus configuraciones de seguridad y mantengan actualizadas las utilidades para prevenir la posible explotación de vulnerabilidades como la mencionada.