
# PoC и техническое описание для CVE-2026-73310 — уязвимость привязки URI перенаправления кода авторизации OAuth2 в XenForo до версии 2.3.13, включая шаги воспроизведения и PoC-скрипт на Python.
XenForo до версии 2.3.13 не привязывает код авторизации OAuth2 к URI перенаправления, использованному при выдаче этого кода.
На конечной точке токена XenForo проверяет, что отправленный redirect_uri присутствует в списке разрешённых URI клиента. При этом значение не сравнивается с URI перенаправления, сохранённым в запросе авторизации. Клиент с колбэками A и B может, таким образом, авторизоваться через A и обменять код, указывая при этом B.
Злоумышленник должен контролировать или наблюдать действительный код и другой колбэк, уже зарегистрированный для того же клиента. Ошибка не создаёт код и не добавляет новый URI перенаправления. Она ослабляет привязку между авторизацией по фронтальному каналу и обменом токена.
Я воспроизвёл несоответствие на XenForo 2.3.12 (сборка 2031270): колбэк A выдал код, колбэк B обменял его, и полученный токен аутентифицировался как авторизующий пользователь. XenForo 2.3.13 содержит исправление.
python poc.py https://xenforo.example CLIENT_ID AUTHORIZATION_CODE https://client.example/callback-b --code-verifier VERIFIER
Добавьте --client-secret только для конфиденциального тестового клиента. Скрипт хеширует возвращённые токены и сообщает только о том, принял ли их .
/api/meИспользуйте два колбэка и одноразовый грант OAuth, которым вы владеете. Уязвимая установка принимает колбэк B; исправленная установка отклоняет несоответствие.
Обнаружено Марко Пачарони (BomboBombone).