
Relatório sanitizado e script de prova de conceito local demonstrando o bypass do hook EmailUserAuthorizeSend da API action=emailuser do MediaWiki (CVE-2026-102973).
Repórter: Marco Paciaroni (BomboBombone).
O caminho da API action=emailuser do MediaWiki não invocava o hook EmailUserAuthorizeSend. Quando uma extensão ou política do site usava esse hook para negar um remetente, o formulário web aplicava a negação, enquanto o caminho da API ainda podia enviar a mensagem.
Isto depende da configuração. Afeta um wiki apenas quando uma política local ou extensão usa EmailUserAuthorizeSend como controle de autorização. A configuração padrão do núcleo não fornece, por si só, um hook de negação. Uma conta afetada também precisa da permissão normal de envio de e-mail.
Configure um wiki de teste local isolado com um hook temporário que negue um remetente descartável, e configure o correio do MediaWiki para entregar apenas a um sink SMTP local, como o Mailpit. Crie uma conta de destinatário descartável para esse sink. O script compara o formulário web negado com a requisição da API e informa se a API ignorou o hook de política.
O script recusa URLs de wiki que não sejam de loopback, exige uma flag explícita de confirmação de SMTP local e confirmação digitada, e solicita a senha do remetente. Não use um wiki configurado para enviar e-mail externamente.
python poc.py --base http://127.0.0.1:8080 --username PolicyTestSender --target CVE102973TestRecipient --confirm-local-smtp
A mensagem de negação do hook deve conter email-policy-denied (o marcador padrão). O remetente precisa do direito normal sendemail, e o destinatário deve usar o endereço do sink local.