Спустя несколько дней после обнаружения в системной библиотеке GNU C Library (glibc) уязвимости, сообщается о нахождении еще одного метода взлома, позволяющего выполнить код с привилегиями суперпользователя. В отличие от ранее представленной техники, новый метод эксплуатации проявляется не только в RHEL, Fedora и CentOS, но и в Debian/Ubuntu и других Linux-дистрибутивах, использующих glibc 2.4 или более позднюю версию. Отдельно собщается, что проблеме не подвержена glibc из состава OpenWall и ALT Linux, так как в данных дистрибутивах изначально по умолчанию использован повышающий безопасность патч "sanitize-env". По своей сути новая уязвимость основана на том же принципе и базируется на отсутствии должных проверок при динамическом связывании в режиме LD_AUDIT библиотек с исполняемыми файлами, для которых установлен идентификатор смены владельца или группы (suid/sgid). Изначально система динамического связывания блокирует любые попытки использования LD_PRELOAD для загрузки для setuid/setgid-программ пользовательских библиотек, размещенных в нестандартный областях файловой системы (/lib, /usr/lib), но разработчики glibc сделали несколько исключений из правил для функции LD_AUDIT, наличие которых и привело к возможности осуществления атаки. При активации режима аудита через LD_AUDIT система связывание выполняет проверку на экспорт символов для всех указанных стандартных библиотек, выполняя вызов dlopen(), который подразумевает запуск процедуры инициализации библиотеки. Техника атаки при этом сводится к инициированию загрузки подставной библиотеки в пути запуска приложения (отмеченная в прошлой уязвимости техника), либо к использованию стандартных библиотек, неучитывающих фактор наличия флага suid/sgid (euid != uid).
Подробности и пример эксплоита