Опасная уязвимость в GNU grep
Проблема связана с переполнением памяти при обработке длинных строк (на архитектуре 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 не подвержен проблеме.
Источник: http://www.opennet.ru/opennews/art.shtml?num=35700
|
0 | Tweet | Нравится |
|