Na biblioteca libinput 1.20.1, que fornece uma pilha de entrada unificada, permitindo o uso das mesmas ferramentas de processamento de eventos de dispositivos de entrada em ambientes baseados em Wayland e X.Org, foi corrigida uma vulnerabilidade (CVE-2022-1215) que permite a execução de código arbitrário ao conectar um dispositivo de entrada modificado/emulador ao sistema. O problema se manifesta em ambientes baseados em X.Org e Wayland e pode ser explorado tanto ao conectar dispositivos localmente quanto ao manipular dispositivos com interface Bluetooth. No caso de executar o servidor X com privilégios de root, a vulnerabilidade permite a execução de código com privilégios elevados.
O problema é causado por um erro de formatação de string no código responsável pela saída em log das informações de conexão do dispositivo. Em particular, a função evdev_log_msg, através da chamada snprintf, alterava a string de formatação original da entrada do log, à qual era adicionado o nome do dispositivo como prefixo. A string alterada, por sua vez, era passada para a função log_msg_va, que utilizava a função printf. Assim, no primeiro argumento do printf, ao qual a análise de caracteres de formatação é aplicada, acabavam dados externos não verificados e o atacante poderia causar uma corrupção da pilha, retornando ao dispositivo um nome que contém caracteres de formatação de string (por exemplo, "Evil %s").
Fonte: opennet.ru
