Плагин twofactor_gauthenticator для Roundcube допускает обход второго фактора через перебор кодов и подмену IP-адреса клиента

roundcube

Плагин twofactor_gauthenticator добавляет в веб-почту Roundcube второй фактор проверки, то есть одноразовый код из приложения-аутентификатора. В плагине нашли несколько уязвимостей, и любая из них позволяет обойти эту проверку при условии, что пароль пользователя уже известен злоумышленнику. Затронуты установки Roundcube, где плагин подключён, во всех сборках до исправления.

Перебор кодов, живая сессия и подмена заголовков

Сценарий у всех проблем общий. Сначала злоумышленник добывает пароль пользователя, и второй фактор остаётся последней преградой на пути к ящику. Плагин не мешает её обойти: код можно перебрать, сессия переживает отказ, а адрес клиента подделывается. Оценка во всех записях - 6.3 из 10, это средний уровень по шкале CVSS 4.0. Атака идёт по сети, учётные данные не нужны, участие пользователя не требуется; сложность отмечена как высокая, потому что пароль требуется получить заранее.

Исправление выпущено в коммите 4640889. Отдельного номера версии плагина записи не называют, поэтому точную сборку нужно смотреть в описании коммита и в истории изменений репозитория плагина. Администраторам, которые ставят расширение из репозитория, достаточно обновиться до сборки, включающей этот коммит.

Сведений об эксплуатации этих уязвимостей в реальных атаках записи не содержат. Публикация описания означает, что технические детали доступны, а не что плагин уже атакуют. Обходных мер записи тоже не приводят: остаётся обновление.

Перебор кода из шести цифр

Уязвимость CVE-2026-107145 связана с отсутствием ограничения на число попыток ввода второго фактора. Код состоит из шести цифр, поэтому подобрать его перебором можно за обозримое число запросов. Злоумышленник с паролем отправляет коды один за другим, пока сервер не примет один из них. Удачный подбор открывает доступ к почтовому ящику без ведома владельца.

Сессия переживает неудачную проверку

После неверного кода плагин перенаправляет браузер на выход, но не уничтожает сессию на сервере. Это CVE-2026-107146: злоумышленник игнорирует перенаправление и продолжает работу в той же сессии. На практике проблема усиливает перебор, потому что попытки не обрываются. Формально речь идёт о недостаточном истечении сессии.

Подмена адреса клиента

Если в плагине настроен доверенный список адресов, второй фактор для них не запрашивается. Адрес клиента плагин берёт из заголовков Client-IP и X-Forwarded-For и не проверяет их содержимое. Так устроена уязвимость CVE-2026-107147. Злоумышленник подставляет в заголовок адрес из списка и проходит проверку без кода.

Без пароля пользователя ни один из описанных сценариев не срабатывает. Но если пароль уже утёк, второй фактор остаётся единственной защитой, и любая из этих ошибок снимает её. Признак подключённого плагина - запрос кода при входе в веб-почту; на таких установках обновление стоит закрыть в первую очередь.

Ссылки

Комментарии: 0