Опасная уязвимость в GNU grep (У меня работает О_о)

В утилите GNU grep обнаружена опасная уязвимость, которая проявляется при обработке специально оформленного входного потока и может быть использована для инициирования отказа в обслуживании, а также, возможно, для выполнения произвольного кода. Подвержены выпуски утилиты GNU grep до версии 2.11. В выпуске 2.11, вышедшем в начале марта 2012 года, эта уязвимость была исправлена, однако не было сделано никаких специальных анонсов о том, что ошибка имеет отношение к проблемам с безопасностью.

Проблема связана с переполнением памяти при обработке длинных строк (на архитектуре x86_64 длина опасной строки составляет порядка 2 Гб). Ошибка была случайно обнаружена одним из пользователей Ubuntu, который пытался обрабатывать grep'ом вывод команды "ls -la" на своем хосте. Уязвимости присвоен идентификатор CVE-2012-5667.

Простейший метод проверки наличия уязвимости (проблема присутствует, если после выполнения нижеприведённой команды выводится ошибка сегментирования):

   $ perl -e 'print "x"x(2**31)' | grep x > /dev/null


Debian и Ubuntu на данный момент ещё не успели выпустить исправления. Однако, отдельные дистрибутивы, поставляющие свежие версии ПО, либо бэкпортирующие ключевые программы, не подвержены данной уязвимости (например, в Fedora 17 используется grep 2.14).

Опасность уязвимости усугубляется тем, что многие администраторы используют утилиту grep для автоматизированной обработки различных данных (в частности, системного лога). Часто такие процессы выполняются с административными привилегиями, что может оказаться фатальным в случае успешной атаки злоумышленника.

Дополнительно, стоит отметить, что в выпуске 2.11 присутствовали ещё как минимум два патча которые, возможно, исправляют не менее опасные уязвимости. В настоящее время в отношении них производится проверка.

Дополнение: вышеприведенный код для проверки на уязвимость дает положительный результат для утилиты GNU grep из состава FreeBSD, вариант утилиты grep под лицензией BSD не подвержен проблеме.




Вас также может заинтересовать:

В nginx 1.0.15 и 1.1.19 устранена опасная уязвимость
Опасная удаленная уязвимость в Samba
Краткий справочник по Find и Grep
Западает дверь на автомобиле? Нужно исправить? - Спроси меня как!
Skype не работает
Google работает над киберпанковскими штуками