Linux Adictos Darkcrizt  

Una vulnerabilidad en Flatpak permitía ejecutar código fuera del sandbox 

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace ya varios días se dio a conocer la noticia de que fue detectada una vulnerabilidad en Flatpak (el sistema para construir, distribuir y ejecutar entornos aislados de aplicaciones de escritorio en Linux). Catalogada bajo CVE-2024-32462, junto con la clasificación CWE-88, la vulnerabilidad descubierta permitía escapar del sandbox a través de RequestBackground.

Esta vulnerabilidad afecta a ciertas versiones específicas de Flatpak, y su impacto puede ser grave, ya que una aplicacion especialmente diseñada podría ejecutar código arbitrario fuera del sandbox, comprometiendo la información del usuario.

Sobre la vulnerabilidad CVE-2024-32462

Se menciona que la vulnerabilidad permite que una aplicación maliciosa o comprometida distribuida mediante un formato de paquete flatpak eluda el modo de aislamiento de la zona de pruebas y acceda a los archivos del sistema principal. Este problema se manifiesta solo en paquetes que utilizan los portales de Freedesktop (xdg-desktop-portal), empleados para facilitar el acceso a recursos en el entorno del usuario desde aplicaciones aisladas.

Es posible pasar una interfaz arbitraria commandlinea la interfaz del portal org.freedesktop.portal.Background.RequestBackgrounddesde una aplicación Flatpak. Normalmente esto es seguro, porque sólo puede especificar un comando que existe dentro del entorno sandbox; pero cuando un objeto elaborado commandlinese convierte en –commandargumentos and, la aplicación podría lograr el mismo efecto de pasar argumentos directamente a bwrapy, por lo tanto, lograr un escape de zona protegida.

La solución es que Flatpak use el –argumento to bwrap, lo que hace que detenga las opciones de procesamiento, antes de agregar el comando especificado por el atacante. El –argumento ha sido respaldado desde bubblewrap 0.3.0, y todas las versiones compatibles de Flatpak ya requieren al menos esa versión de bubblewrap.

La explotación de esta vulnerabilidad permite a una aplicación en un entorno aislado utilizar la interfaz xdg-desktop-portal para crear un archivo «.desktop» con un comando que inicia la aplicación desde flatpak, permitiendo así el acceso a los archivos en el sistema principal.

La esencia de la vulnerabilidad que permite evadir el entorno aislado reside el argumento –command de flatpak run, el cual esperaba recibir un comando para ejecutar en la aplicación Flatpak especificada, junto con algunos argumentos opcionales. Al manipular el parámetro «–command«, que se emplea para pasar el nombre del programa, era posible pasar un nombre de opción, como por ejemplo –bind, y esto era interpretado erróneamente como una opción de bwrap para ejecutar el programa especificado dentro del paquete, en un entorno aislado.

Un ejemplo práctico de ello que se menciona, es para ejecutar la utilidad ls en un entorno de paquetes aislado, se utiliza algo similar a esto:

"flatpak run --command=ls org.gnome.gedit"

La cual ejecutará:

"bwrap ...lots of stuff... --bind / /host ls -l /host".

En este caso, el nombre «–bind» no se considerará como el nombre de la aplicación a ejecutar, sino como una opción de bwrap.

Como tal, la vulnerabilidad radica en el hecho de que si el nombre del programa comienza con los caracteres «–«, la utilidad bwrap lo interpretará como su propia opción. Originalmente, enviar comandos de esta manera no se consideraba peligroso, ya que se ejecutarían en un entorno aislado del paquete. Sin embargo, no se tuvo en cuenta que los comandos que comienzan con «–» serán interpretados como opciones por la utilidad bwrap. Como resultado, la interfaz xdg-desktop-portal se puede aprovechar para crear un archivo «.desktop» con un comando que explote esta vulnerabilidad.

El argumento —  ha sido compatible desde bubblewrap 0.3.0, y todas las versiones compatibles de Flatpak ya requieren al menos esa versión de bubblewrap. Se menciona que una de las soluciones es que la versión 1.18.4 de xdg-desktop-portal ya no permita que las aplicaciones Flatpak creen nuevos archivos .desktop para los comandos que se inician con -.

Finalmente cabe mencionar que la vulnerabilidad ha sido corregida en las versiones parcheadas de Flatpak 1.15.8, 1.14.6, 1.12.9 y 1.10.9. Asimismo, se ha propuesto una solución de seguridad en las versiones 1.16.1 y 1.18.4 de xdg-desktop-portal.

Puedes consultar la versión de Flatpak que tienes ejecutando el siguiente comando:

flatpak --version

En dado caso de estar sobre una versión vulnerable o si quieres actualizar tu versión de Flatpak, basta con ejecutar alguno de los siguientes comando:

Ubuntu/Debian y derivados:

sudo apt upgrade flatpak

RHEL/Fedora  y derivados:

sudo dnf upgrade flatpak

Arch Linux y derivados:

sudo pacman -Syu flatpak

Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.