Уязвимость в OpenSSH, позволяющая определить наличие пользователей
В OpenSSH выявлена проблема с безопасностью, позволяющая удаленному атакующему определить сущетвует ли пользователей с данным именем в системе.
Метод базируется на разности времени обработки запроса на аутентификацию для существующего и неизвестного пользователя. Атакующий может отправить некорректный запрос аутентификации (например, отправить поврежденный пакет), в случае отсутствия пользователя в системе выполнение функции userauth_pubkey завершиться сразу с отправкой ответа SSH2_MSG_USERAUTH_FAILURE. Если пользователь присутствует в системе сбой произойдет при вызове sshpkt_get_u8 и сервер просто молча закроет соединение.
Напомним, что для противодействия попыткам перебора пользователей в OpenSSH присутствует защита - для несуществующих пользователей выполняется проверка по фиктивному хэшу пароля, что позволяет выровнять время обработки операции проверки для существующего и несуществующего пользователя. Без выравнивания времени проверки атакующий может проанализировать время выполнения операции и если очередная проверка выполняется дольше обычного, сделать вывод о наличии запрошенного пользователя в системе и перейти к подбору пароля для конкретного логина.