Критическая уязвимость в библиотеке Libssh

В новых выпусках библиотеки libssh 0.8.4 и 0.7.6 (не путать с libssh2), предназначенной для добавления клиентской и серверной поддержки протокола SSH в программы на языке Си, устранена критическая уязвимость (CVE-2018-10933). Уязвимость позволяет обойти стадию аутентификации в серверных приложениях на базе libssh.

Атака сводится к отправке сообщения SSH2_MSG_USERAUTH_SUCCESS вместо сообщения SSH2_MSG_USERAUTH_REQUEST, после чего сервер даже не начинает стадию аутентификации и считает подключение авторизованным без сверки учётных данных. Проблема проявляется начиная с ветки Libssh 0.6, выпущенной в 2014 году, в которой была проведена унификация кода реализаций клиента и сервера (клиент считает аутентификацию успешной после получения SSH2_MSG_USERAUTH_SUCCESS, но использование кода с данной проверкой при обработки серверной логики привело к возможности получения доступа вообще без аутентификации).

Для тестирования подготовлен прототип эксплоита. Уязвимость проявляется только в приложениях, работающих в режиме сервера (очень редкая ситуация, так как libssh в основном используется для создания SSH-клиентов). Исключение составляет продукт GitHub Enterprise, в котором libssh также применяется и в режиме сервера. Но GitHub Enterprise не подвержен уязвимости так как использует собственный форк Libssh в котором задействованы собственные процедуры прохождения аутентификации.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.