Обнаружена опасная ошибка в реализации библиотечной функции glob() из
стандартной библиотеки языка C (libc) на множестве платформ.
Эта
функция предназначена для получения списка файлов, чьи имена
удовлетворяют заданному шаблону. Ошибка заключается в том, что
ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не
действует в случае задания некорректных путей в шаблоне. Такими
некорректными значениями могут быть, например, "*/../*/../*foo" или
"{..,..,..}/*/{..,..,..}/*bar". При этом вызов функции glob() может
исчерпать всю доступную память процесса.
Особенную опасность
данная ошибка представляет для (S)FTP-серверов, особенно с разрешенным
анонимным доступом. Очевидно, запрос на листинг файлов с вышеприведенной
маской приводит к скорому отказу в обслуживании FTP-сервера.
Уязвимости
подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7,
NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все
версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD;
компании и сообщества, занимающиеся разработкой вышеперечисленных (за
исключением NetBSD) операционных систем, пока не дают никакой
информации; именно поэтому уязвимость классифицируется как "0-day".
Сообщается также, что vsftpd не подвержен уязвимости.