Обнаружена критическая уязвимость в Glibc

Обнаружена критическая уязвимость в Glibc

В системной библиотеке Glibc выявлена критическая уязвимость (CVE-2015-0235), которая может использоваться для организации выполнения кода в системе и проявляется при обработке специально оформленных данных в функциях gethostbyname() и gethostbyname2(), которые используются во многих программах для преобразования имени хоста в IP-адрес.

По степени опасности уязвимость, которая получила кодовое имя GHOST, сравнима с уязвимостями в Bash и OpenSSL. Для демонстрации уязвимости подготовлен рабочий прототип эксплоита, позволяющий организовать удалённое выполнение кода на почтовом сервере Exim, обойдя все доступные механизмы дополнительной защиты (ASLR, PIE, NX) на 32- и 64-разрядных системах, сообщает opennet.ru.

Проблема вызвана переполнением буфера в функции __nss_hostname_digits_dots(), используемой в gethostbyname() и gethostbyname2(). Несмотря на то, что вызовы gethostbyname() и gethostbyname2() устарели (следует использовать getaddrinfo()), они продолжают применяться для преобразования имени хоста во многих актуальных приложениях. Атака затруднена в серверных программах, которые используют gethostbyname() для обратной проверки данных, полученных через DNS, а также в привилегированных suid-утилитах, в которых вызов getaddrinfo() применяется только при сбое выполнения inet_aton(). Опасность представляют в основном приложения, передающие в getaddrinfo() данные, полученные извне, такие как почтовые серверы и манипулирующие именами хостов утилиты. Например, уязвимость подтверждена в Exim (при использовании настроек "helo_verify_hosts", "helo_try_verify_hosts" или ACL "verify = helo"), procmail и clockdiff.

Примечательно, что проблема присутствует в коде Glibc начиная с версии 2.2, выпущенной в ноябре 2000 года. При этом проблема была молча устранена в мае 2013 года без указания на то, что исправленная ошибка имеет отношение к серьёзным проблемам с безопасностью. Glibc 2.18 и более новые выпуски не подвержены уязвимости. Уязвимость не проявляется в дистрибутивах, построенных на основе свежих версий Glibc, например, в последних версиях Fedora и Ubuntu.

При этом, уязвимости подвержены длительно поддерживаемые промышленные дистрибутивы, которые требуют незамедлительного обновления. В частности, проблема проявляется в Debian 7 (wheezy), Red Hat Enterprise Linux 6 и 7, CentOS 6 и 7, Ubuntu 10.04 и 12.04, SUSE Linux Enterprise 10 и 11. В настоящее время обновление уже выпущено для Ubuntu 10.04/12.04, Debian 7 и RHEL 7,6,5. На стадии подготовки обновления для SUSE и CentOS. После обновления glibc следует не забыть перезапустить сетевые приложения.

Критическая уязвимость в плагине WPvivid Backup затронула 900 000 сайтов

Уязвимость, выявленная в популярном WordPress-плагине для создания резервных копий, позволяет без аутентификации загрузить на сайт вредоносный код PHP и запустить его на исполнение. Патч включен в состав WPvivid Backup & Migration 0.9.124.

Уязвимости подвержены все прежние версии продукта. Ввиду высокой опасности и масштабности проблемы (на счету WPvivid Backup уже свыше 900 тыс. установок) пользователям настоятельно рекомендуется произвести обновление.

Правда, в блог-записи Wordfence сказано, что CVE-2026-1357 (9,8 балла CVSS) критична лишь для тех, у кого настройки плагина предусматривают обработку сгенерированным ключом — в обеспечение загрузки резервных копий с других сайтов. По умолчанию эта возможность отключена, а срок действия ключа ограничен 24 часами.

Согласно описанию, причин появления уязвимости две: неадекватная обработки ошибок при расшифровке по RSA и отсутствие санации пути при записи загруженных файлов.

Как оказалось, когда плагин тщетно пытался расшифровать сеансовый ключ, он не завершал выполнение, а передавал ложное значение $key в phpseclib для инициализации шифрования.

Криптобиблиотека воспринимала его как строку нулевых байтов, что открыло возможность для шифрования полезной нагрузки дефолтным, легко угадываемым 0-байтовым ключом.

 

Ситуацию усугубило отсутствие проверок типа файлов и их расширений в функции send_to_site(). Это провоцировало выход за пределы защищенного каталога резервных копий — загрузку на сервер произвольного PHP-кода с записью в публично доступные места с тем, чтобы он каждый раз отрабатывал в браузере.

Апдейт, устраняющий эти недостатки, вышел 28 января. Автор опасной находки получил 2145 долларов в рамках программы Wordfence Bug Bounty.

RSS: Новости на портале Anti-Malware.ru