
Очищенный отчёт и локальный скрипт proof-of-concept, демонстрирующий обход хука EmailUserAuthorizeSend API action=emailuser в MediaWiki (CVE-2026-102973).
Автор отчёта: Marco Paciaroni (BomboBombone).
Путь API action=emailuser в MediaWiki не вызывал хук EmailUserAuthorizeSend. Когда расширение или политика сайта использовали этот хук для запрета отправителя, веб-форма применяла запрет, а путь API всё равно мог отправить сообщение.
Это зависит от конфигурации. Уязвимость затрагивает вики только тогда, когда локальная политика или расширение использует EmailUserAuthorizeSend как средство контроля авторизации. Стандартная конфигурация ядра сама по себе не предоставляет запрещающего хука. У затронутой учётной записи также должно быть обычное разрешение на отправку email.
Настройте изолированную локальную тестовую вики с временным хуком, который запрещает одноразового отправителя, и настройте почту MediaWiki на доставку только в локальный SMTP-приёмник, например Mailpit. Создайте одноразовую учётную запись получателя для этого приёмника. Скрипт сравнивает запрещённую веб-форму с запросом API и сообщает, пропустил ли API хук политики.
Скрипт отклоняет URL вики, не являющиеся loopback, требует явного флага подтверждения локального SMTP и ввода подтверждения, а также запрашивает пароль отправителя. Не используйте вики, настроенную на отправку почты во внешнюю сеть.
python poc.py --base http://127.0.0.1:8080 --username PolicyTestSender --target CVE102973TestRecipient --confirm-local-smtp
Сообщение об отказе хука должно содержать email-policy-denied (маркер по умолчанию). Отправителю требуется обычное право sendemail, а получатель должен использовать адрес локального приёмника.