
Санитизированный отчёт и PoC только для loopback для CVE-2026-102971 — утечка идентификаторов пользователей скрытых авторов ревизий в ответе REST-API MediaWiki.
Автор отчёта: Marco Paciaroni (BomboBombone).
Ответ RESTBase-совместимой ревизии в MediaWiki мог включать числовой ID пользователя автора, имя которого было скрыто. В ответе по-прежнему устанавливалось user_text в null и автор помечался как скрытый, но раскрытый ID можно было сопоставить с учётной записью через публичный API поиска пользователей.
Неаутентифицированный вызывающий мог сопоставить намеренно скрытого автора ревизии с учётной записью автора. Для раскрытия требуется ревизия, поле автора которой скрыто, и вики, предоставляющая основной REST-маршрут ревизий.
Скрипт создаёт одноразовую локальную страницу, скрывает автора её новой ревизии, сравнивает стандартный REST-ответ с включённой совместимостью RESTBase, проверяет, что локальный публичный поиск пользователей разрешает ID, и очищает состояние страницы и ревизии.
Запускайте его только против изолированного тестового экземпляра MediaWiki на loopback. Он отказывается работать с не-loopback хостами и требует явного флага подтверждения. Он запрашивает пароль тестовой учётной записи вместо его приёма в командной строке.
python poc.py --base http://127.0.0.1:8080 --username LocalAdmin --confirm-local-test
Учётной записи требуется разрешение на редактирование одноразовой страницы и скрытие автора её ревизии (suppressrevision).