16 декабря 2014
Уязвимость текстовой утилиты less
Арсенал вспомогательных компьютерных программ помогает в работе, как программистам, так и писателям. Текстовая утилита less пользуется заслуженной популярностью благодаря простоте и удобству. Эта программа предназначена для чтения текста или, иначе, является, как ее называют хакеры, пейджером. Она была создана для того, чтобы исправить недостатки стандартного пейджера Unix «more» и используется для просмотра текстовых файлов. Преимущество less по сравнению с редакторами nano или vim состоит в том, что она при чтении не загружает файл в оперативную память полностью и поэтому работает быстрее.
Функциональность утилиты less расширена при помощи скрипта lesspipe, поэтому она поддерживает большое количество типов файлов. Например, в Ubuntu lesspipe она может отображать содержимое файлов следующих форматов: *.arj, *.bz, *.bz2, *.deb, *.udeb, *.doc,*.gif, *.jpeg, *.jpg, *.pcd, *.png, *.tga, *.tiff, *.iso, *.raw, *.bin, *.pdf, *.rar и другие. При разработке этого инструмента его создатели не уделили внимания возможности ввода вредоносного кода.
В программе less инженер по безопасности Google Михал Залевски нашел уязвимость. Для анализа он использовал программу для fuzzing-теста. Проверка показала, что в используемом lesspipe архиваторе cpio содержится ошибка, которая может привести к выполнению произвольного кода в системе.
Ошибка не является критической, если пользователь просматривает при помощи less только текстовые файлы. Но так как less может вызываться из других приложений, например, файлового менеджера Midnight Commander или почтового клиента Mutt, то эта связь может подвергнуть систему опасности. Пользователи могут обезопасить свои данные, удалив переменные окружения LESSOPEN и LESSCLOSE. Это приведет к снижению функциональности самой утилиты less и обращающихся к ней программ.
Найденная уязвимость не угрожает пользователям дистрибутивов, в которых Linux пакет lesspipe устанавливается отдельно и эти программы автоматически никак не связываются.