En el proceso en segundo plano desarrollado por Red Hat llamado tuned, que realiza la optimización automática de la configuración del hardware y del núcleo según la carga actual, se ha identificado una vulnerabilidad (CVE-2024-52336) que permite a un usuario local no privilegiado ejecutar cualquier comando con privilegios de root.
El problema se encuentra en la implementación del método DBus «com.redhat.tuned.instance_create», que se utiliza para crear instancias de plugins, en el que se pueden enviar parámetros «script_pre» y «script_post» para indicar scripts que se ejecutan antes o después de la creación de la instancia del plugin. El problema es que la configuración de Polkit permite a cualquier usuario local que haya iniciado sesión sin autenticación enviar una solicitud DBus a este método, mientras que el propio proceso tuned se ejecuta con privilegios de root y también ejecuta los scripts indicados en los parámetros «script_pre» y «script_post» con privilegios de root. Por ejemplo, para ejecutar el script /path/to/myscript.sh con privilegios de root, el usuario solo necesita ejecutar el comando: gdbus call -y -d com.redhat.tuned -o /Tuned \ -m com.redhat.tuned.control.instance_create cpu myinstance \ '{"script_pre": "/path/to/myscript.sh", "devices": "*"}'
En el método DBus «com.redhat.tuned.instance_create» también hay una vulnerabilidad menos severa (CVE-2024-52337) causada por la falta de limpieza del valor del nombre de la instancia del plugin al registrarlo en el log. Un atacante puede añadir un nombre que contenga un salto de línea y caracteres de escape para el emulador de terminal, que pueden utilizarse para romper la estructura del log y ejecutar acciones al mostrar la salida del comando «tuned-adm get_instances» en el terminal. EVIL=`echo -e "this is\nevil\033[?1047h"` gdbus call -y -d com.redhat.tuned -o /Tuned -m com.redhat.tuned.control.instance_create cpu "$EVIL" '{"devices": "*"}'
Las vulnerabilidades se manifiestan a partir de la versión tuned 2.23, lanzada a principios de junio de 2024, y se han corregido en el lanzamiento tuned 2.24.1. En las principales distribuciones, los problemas se han solucionado en RHEL 9, Fedora 40, Arch Linux y Gentoo. En las ramas estables de Ubuntu, Debian y SUSE/openSUSE, las vulnerabilidades no se manifiestan, ya que estas distribuciones incluyen versiones antiguas de tuned (<2.23), que no están afectadas por las vulnerabilidades.
Fuente: opennet.ru
