Vulnerabilidad en libinput que conduce a la ejecución de código cuando se conecta un dispositivo malicioso

La biblioteca libinput 1.20.1, que proporciona una pila de entrada unificada que le permite utilizar los mismos medios para procesar eventos desde dispositivos de entrada en entornos basados ​​en Wayland y X.Org, ha eliminado una vulnerabilidad (CVE-2022-1215), que le permite organizar la ejecución de su código al conectar un dispositivo de entrada especialmente modificado/emulado al sistema. El problema se manifiesta en entornos basados ​​en X.Org y Wayland, y puede explotarse tanto al conectar dispositivos localmente como al manipular dispositivos con interfaz Bluetooth. Si el servidor X se ejecuta como root, la vulnerabilidad permite que el código se ejecute con privilegios elevados.

El problema se debe a un error de formato de línea en el código responsable de enviar la información de conexión del dispositivo al registro. En particular, la función evdev_log_msg, mediante una llamada a snprintf, cambió la cadena de formato original de la entrada del registro, a la que se agregó el nombre del dispositivo como prefijo. A continuación, la cadena modificada se pasó a la función log_msg_va, que a su vez utilizó la función printf. Por lo tanto, el primer argumento de printf, al cual se aplicó el análisis de caracteres de formato, contenía datos externos no validados, y un atacante podría iniciar la corrupción de la pila haciendo que el dispositivo devolviera un nombre que contuviera caracteres de formato de cadena (por ejemplo, "Evil %s") .

Fuente: opennet.ru

Añadir un comentario