Проблема вызвана ошибкой форматирования строки в коде, отвечающем за вывод в лог информации о подключении устройства. В частности, проблема связана с тем, что в блок со строкой форматирования для функции printf попадало значение, полученное от устройства.
Функция evdev_log_msg при помощи вызова snprintf изменяла исходную строку форматирования для printf, в которую в качестве префикса добавлялось имя устройства. Далее для вывода изменённая строка передавалась в функцию log_msg_va, которая в свою очередь использовала функцию printf с указанием полученного значения в первом аргументе, к которому применяется разбор символов форматирования.
Из-за отсутствия проверки наличия спецсимволов в имени устройства, атакующий мог инициировать переполнение буфера при возвращении устройством идентификатора, содержащего символы форматирования строки (например, «Evil %s»).
Источник: http://www.opennet.ru/opennews/art.shtml?num=57053