Xakep #305. Многошаговые SQL-инъекции
Компания Okta обнаружила уязвимость в своей системе безопасности. Оказалось, что Okta AD/LDAP DelAuth (Delegated Authentication) можно было обойти с помощью очень длинного имени пользователя.
Сообщается, что ошибку можно было эксплуатировать только при соблюдении ряда условий, ключевым из которых являлось слишком длинное имя пользователя: более 52 символов. Хотя на первый взгляд кажется, что такое вряд ли возможно, встречаются ситуации, когда в качестве имени пользователя используется, к примеру, рабочий адрес электронной почты.
Уязвимость представляла опасность лишь в том случае, если для целевой учетной записи имелась сохраненная успешная попытка входа, включая соответствующий ключ кеша, сгенерированный при помощи bcrypt. По словам разработчиков Okta, этот ключ состоит из хешированной строки пользовательского ID, имени пользователя и пароля.
Также кеш должен использоваться первым, что, по словам представителей компании, «может произойти в том случае, если агент AD/LDAP не работает или не доступен, к примеру, из-за интенсивного сетевого трафика».
Следует отметить, что для успешной эксплуатации бага многофакторная аутентификация (МФА) так же должна быть отключена.
Как объяснил один из ИБ-специалистов Brave: так как алгоритм bcrypt игнорирует input свыше определенной длины и используется для хеширования пары имени пользователя и пароля, достаточно длинное имя пользователя приведет к тому, что будет принят вообще любой пароль.
В Okta пишут, что обнаружили проблему 30 октября 2024 года и устранили ее в этот же день. Однако на момент обнаружения уязвимость уже существовала в коде более трех месяцев.
Из-за этого компания рекомендует клиентам включить МФА и проверить логи, начиная с 23 июля текущего года, обращая внимание на попытки аутентификации с использованием длинных имен пользователей (52 символа и более).
В компании не уточнили, известно ли на данный момент о каких-либо успешных попытках эксплуатации этого бага.