
Bereinigter Bericht und lokales Proof-of-Concept-Skript für CVE-2026-102975, eine Umgehung der Autorisierung der MediaWiki RevisionDelete API, die das Entfernen der Unterdrückung ohne suppressrevision ermöglicht.
Reporter: Marco Paciaroni (BomboBombone).
MediaWikis action=revisiondelete akzeptierte suppress=no, ohne suppressrevision zu prüfen. Ein Aufrufer mit viewsuppressed und einem typspezifischen Verwaltungsrecht konnte das eingeschränkte Bit entfernen, selbst ohne das Recht zur Verwaltung der Unterdrückung.
Eine Berechtigungskonfiguration, die viewsuppressed und deleterevision oder deletelogentry ohne suppressrevision gewährt, erlaubte dem Aufrufer, durch den Unterdrückungs-Workflow geschütztes Material offenzulegen. Dieses benutzerübergreifende Autorisierungsproblem hängt davon ab, dass diese Rechte getrennt sind.
Bereiten Sie eine Wegwerf-Revision vor, die nur eine harmlose Canary-Zeichenkette enthält, und unterdrücken Sie deren Inhalt in einem isolierten lokalen Wiki. Erstellen Sie ein Testkonto mit viewsuppressed und deleterevision, aber nicht suppressrevision. Das Skript sendet die anfällige API-Anfrage, prüft, ob eine anonyme Anfrage den Canary sehen kann, und verwendet einen separaten Testadministrator, um die Unterdrückung wiederherzustellen.
Das Skript lehnt Nicht-Loopback-Wiki-URLs ab, prüft die Rechte beider Konten, fragt nach beiden Passwörtern und erfordert eine getippte Bestätigung, bevor die Sichtbarkeit der Testrevision geändert wird. Verwenden Sie nur ein Wegwerf-lokales Fixture.
python poc.py --base http://127.0.0.1:8080 --username ViewOnlyEditor --restore-username LocalAdmin --page-title CVE102975DisposablePage --revision-id 123 --confirm-test-fixture
Die Revisions-ID und der Seitentitel müssen sich auf das unterdrückte Canary-Fixture beziehen. Das Wiederherstellungskonto benötigt suppressrevision.