Разработчики популярного форумного движка phpBB выпустили версию 3.3.17 "Young Bertie". Релиз носит характер планового обновления безопасности и функциональной доработки. Пользователям настоятельно рекомендуется установить его как можно скорее: патч устраняет четыре уязвимости, причём одна из них позволяет захватывать учётные записи без включённой функции OAuth (протокола делегированной аутентификации), а другая - проводить SQL-инъекции через поля профиля на форумах, обновлённых с устаревших версий.
Суть уязвимостей
Первая проблема связана с недостаточной верификацией прав доступа при настройке разрешений в административной панели (ACP). В определённых сценариях администратор форума мог получить более широкие полномочия, чем ему было делегировано. Вендор благодарит за отчёт пользователя UdinChan, который сообщил об уязвимости через платформу HackerOne.
Вторая уязвимость затрагивает процесс миграции данных профиля пользователей. При обновлении форума с версии phpBB 3.3.7 или более ранней до промежуточных версий (3.3.8 - 3.3.10) механизм обработки полей профиля мог некорректно обрабатывать входные данные, что потенциально приводило к SQL-инъекции. Злоумышленник мог через специально сформированное поле профиля выполнить произвольный SQL-запрос к базе данных. Наиболее критично это для форумов, которые обновлялись с версий до 3.3.8 и ещё не достигли 3.3.11. Проблему обнаружил исследователь с псевдонимом Anteater (giant_anteater) также через HackerOne.
Третья группа уязвимостей касается реализации OAuth. Две независимые ошибки в проверке запросов позволяли злоумышленнику захватить учётную запись пользователя, прошедшего аутентификацию через внешнего провайдера. Особенно опасна та из них, для использования которой злоумышленнику не нужно ни настраивать, ни даже включать OAuth на форуме. Авторами отчётов выступили компания Aikido Security (сообщение через HackerOne), а также Даниэль Стефан Александру из Pentest-Tools.com и Химаншу Ананд (сообщения по электронной почте).
Анализ и контекст
Все четыре уязвимости имеют разную степень серьёзности. Уязвимость SQL-инъекции (CVE не присвоен отдельно, но она исправлена в данном релизе) может привести к полной компрометации базы данных форума. Поскольку phpBB хранит хеши паролей, личные сообщения и другие конфиденциальные данные, её эксплуатация означает прямой доступ к ним. Однако стоит отметить, что проблема затрагивает не все установки - только форумы, обновлённые через определённый диапазон версий.
Уязвимости OAuth - более широкая проблема. OAuth всё чаще используется для входа на веб-сайты, и любой сбой в его реализации создаёт риск массового захвата аккаунтов. То, что одна из уязвимостей может быть использована даже без настройки OAuth, говорит о том, что затронуты все форумы с этой версией кода, независимо от их конфигурации. Исследователи не раскрыли детали эксплуатации до выхода патча, но логично предположить, что злоумышленник мог перехватывать токены аутентификации или манипулировать потоком перенаправлений.
Проблема с превышением прав администратора - классическая уязвимость недостаточной валидации привилегий. Хотя доступ к ACP обычно имеют только доверенные лица, в больших сообществах с несколькими администраторами злоупотребления возможны.
Цитата из официального анонса
В объявлении разработчики подчёркивают: "Неправильная проверка прав доступа при установке разрешений в ACP могла позволить злонамеренному администратору превысить уровень полномочий, предоставленный ему. Другая потенциальная проблема затрагивала миграцию полей профиля, которая могла привести к SQL-инъекции через данные этих полей. Кроме того, две отдельные неправильные проверки в предыдущей реализации OAuth могли быть использованы для захвата учётных записей; одна из них не требует настройки или включения OAuth". Вендор рекомендует всем пользователям как можно быстрее обновиться до версии 3.3.17.
Изменения в OAuth и практические последствия
Вместе с исправлением уязвимостей разработчики провели частичный рефакторинг модуля OAuth. Самое существенное изменение - в формате URI перенаправления. Ранее требовалось указывать два адреса. Теперь достаточно одного:
"https://{ваш_форум}/app.php/user/oauth/authenticate/google"
(при включённой перезаписи URL можно опустить "app.php/"). Тем, кто использует OAuth, придётся обновить настройки у провайдеров (Google, Facebook* и других). Разработчики предупредили, что старые два URI больше не работают. Если не изменить адрес в консоли провайдера, вход через сторонние сервисы будет невозможен.
Также в релизе усилили проверки для безопасных загрузок и разрешения имён хостов, исправили проблему с удалением расширений, возникшую в версии 3.3.16, и поправили ошибку на этапе установки при проверке файловой системы.
Резюме
Необходимость установки phpBB 3.3.17 критична для любого форума, независимо от версии. Уязвимость SQL-инъекции затрагивает только часть установок (обновлённые с версий ниже 3.3.8), но уязвимости OAuth и административного превышения прав носят универсальный характер. Организации и владельцы форумов, которые откладывают обновление, рискуют столкнуться с захватом учётных записей пользователей, несанкционированным повышением привилегий администраторов и возможной утечкой базы данных. Рекомендуется выполнить обновление в кратчайшие сроки, предварительно скорректировав URI для OAuth-провайдеров, если эта функция используется.
Ссылки
- https://www.aikido.dev/blog/phpbb-authentication-bypass-rce
- https://www.phpbb.com/community/viewtopic.php?t=2672170