報告者: Marco Paciaroni (BomboBombone)。
MediaWikiのRESTBase互換の版レスポンスに、名前が隠された著者の数値ユーザーIDが含まれる可能性がありました。レスポンスは依然として user_text を null に設定し、著者を非表示としてマークしていましたが、漏洩したIDは公開ユーザー検索APIを通じてアカウントに紐付けられる可能性がありました。
未認証の呼び出し元が、意図的に隠された版の著者をその著者のアカウントと関連付けることができました。この漏洩には、著者フィールドが隠された版と、コアREST版ルートを公開しているウィキが必要です。
このスクリプトは、使い捨てのローカルページを作成し、その新しい版の著者を隠し、RESTBase互換を有効にした標準RESTレスポンスを比較し、ローカルの公開ユーザー検索がそのIDを解決できることを確認し、ページと版の状態をクリーンアップします。
ループバック上の隔離されたMediaWikiテストインスタンスに対してのみ実行してください。非ループバックホストを拒否し、明示的な確認フラグを必要とします。テストアカウントのパスワードはコマンドラインで受け取るのではなく、プロンプトで入力を求めます。
python poc.py --base http://127.0.0.1:8080 --username LocalAdmin --confirm-local-test
アカウントには、使い捨てページを編集し、その版の著者を隠す権限 (suppressrevision) が必要です。