
Bereinigter Bericht und lokales Proof-of-Concept-Skript, das die Umgehung des MediaWiki action=emailuser API EmailUserAuthorizeSend Hooks (CVE-2026-102973) demonstriert.
Reporter: Marco Paciaroni (BomboBombone).
Der API-Pfad action=emailuser von MediaWiki rief den Hook EmailUserAuthorizeSend nicht auf. Wenn eine Erweiterung oder eine Seitenrichtlinie diesen Hook verwendete, um einen Absender abzulehnen, setzte das Webformular die Ablehnung durch, während der API-Pfad die Nachricht dennoch senden konnte.
Dies ist konfigurationsabhängig. Es betrifft ein Wiki nur, wenn eine lokale Richtlinie oder Erweiterung EmailUserAuthorizeSend als Autorisierungskontrolle verwendet. Die Standard-Kernkonfiguration stellt für sich genommen keinen ablehnenden Hook bereit. Ein betroffenes Konto benötigt außerdem die normale Berechtigung zum Senden von E-Mails.
Konfigurieren Sie ein isoliertes lokales Test-Wiki mit einem temporären Hook, der einen Wegwerf-Absender ablehnt, und konfigurieren Sie MediaWiki-Mail so, dass sie nur an eine lokale SMTP-Senke wie Mailpit zugestellt wird. Erstellen Sie ein Wegwerf-Empfängerkonto für diese Senke. Das Skript vergleicht das abgelehnte Webformular mit der API-Anfrage und meldet, ob die API den Richtlinien-Hook übersprungen hat.
Das Skript lehnt Nicht-Loopback-Wiki-URLs ab, erfordert ein explizites Bestätigungsflag für lokales SMTP sowie eine eingegebene Bestätigung und fragt nach dem Absenderpasswort. Verwenden Sie kein Wiki, das für den externen E-Mail-Versand konfiguriert ist.
python poc.py --base http://127.0.0.1:8080 --username PolicyTestSender --target CVE102973TestRecipient --confirm-local-smtp
Die Ablehnungsnachricht des Hooks muss email-policy-denied enthalten (den Standardmarker). Der Absender benötigt das normale sendemail-Recht, und der Empfänger muss die lokale Senkenadresse verwenden.