
Report sanitizzato e script proof-of-concept locale che dimostra il bypass dell'hook EmailUserAuthorizeSend dell'API action=emailuser di MediaWiki (CVE-2026-102973).
Segnalatore: Marco Paciaroni (BomboBombone).
Il percorso API action=emailuser di MediaWiki non invocava l'hook EmailUserAuthorizeSend. Quando un'estensione o una policy del sito utilizzava quell'hook per negare un mittente, il modulo web applicava il diniego mentre il percorso API poteva comunque inviare il messaggio.
Questo dipende dalla configurazione. Influisce su una wiki solo quando una policy locale o un'estensione utilizza EmailUserAuthorizeSend come controllo di autorizzazione. La configurazione core standard non fornisce di per sé un hook di diniego. Un account interessato necessita inoltre della normale autorizzazione all'invio di email.
Configurare una wiki di test locale isolata con un hook temporaneo che nega un mittente usa e getta, e configurare la posta di MediaWiki per consegnare solo a un sink SMTP locale come Mailpit. Creare un account destinatario usa e getta per quel sink. Lo script confronta il modulo web che nega con la richiesta API e segnala se l'API ha ignorato l'hook della policy.
Lo script rifiuta URL di wiki non loopback, richiede un flag esplicito di conferma SMTP locale e una conferma digitata, e chiede la password del mittente. Non utilizzare una wiki configurata per inviare posta esternamente.
python poc.py --base http://127.0.0.1:8080 --username PolicyTestSender --target CVE102973TestRecipient --confirm-local-smtp
Il messaggio di diniego dell'hook deve contenere email-policy-denied (il marcatore predefinito). Il mittente necessita del normale diritto sendemail, e il destinatario deve utilizzare l'indirizzo del sink locale.