Ошибка в библиотке libc привела к уязвимости большинства FTP-серверов

Ошибка в реализации функции glob() в различных Си-библиотеках, например в glibc и BSD libc, может быть использована удалённым атакующим, чтобы нарушить работу FTP/SFTP серверов. В связи с тем, что на многих серверах разрешён анонимный вход, ошибку легко эксплуатировать и многие программные продукты являются уязвимыми. В отчёте утверждается, что серверы даже таких крупных компаний, как Adobe и HP, подвержены этой проблеме.

Проблема возникла из-за того, что переменная GLOB_LIMIT, которую добавили в 2001 году для ограничения объёма памяти функцией glob() c целью защиты от аналогичной уязвимости, не эффективна. Проверка на совпадение (globbing) вызывает функцию glob(), чтобы сравнить список файлов с шаблоном и вернуть на выход список совпадающих файлов. В виду того, что GLOB_LIMIT не действует в ситуациях когда в пути фигурирует несуществующий путь, данная проблема теоретически позволяет исчерпать доступную процессу память, используя определённый шаблон («*/../*/../*строка» или «{..,..,..}/*/{..,..,..}/*строка»), и, в зависимости от операционной системы и мощности оборудования, может привести к полной остановке работы или неожиданному завершению работы FTP/SFTP сервиса.

Уязвимость на данный момент подтверждена в следующих продуктах: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3 / 8.1, Oracle Sun Solaris 10 и GNU Libc (glibc), поставляемой в Linux. Для демонстрации проблемы выпущен эксплоит. Разработчики NetBSD уже закрыли эту проблему, другие компании пока даже не заявляют о её существовании: Slackware, Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Debian, Ubuntu, FreeBSD, OpenBSD. Vsftpd проблеме не подвержен.

Источник: OpenNET