報告者: Marco Paciaroni (BomboBombone)。
公開されている action=parse API は PHP シリアライズされた Wikibase エンティティを受け入れていました。無制限のオブジェクト構築により、呼び出し元が選択したパスを unlink する Smarty デストラクタに到達する可能性がありました。影響を受ける Wikimedia デプロイメントで利用可能な PHP ガジェットチェーンは、このオブジェクトインジェクションパスをリモートコード実行へと拡張できます。
このスクリプトは一時ディレクトリに使い捨てのカナリアを作成し、シリアライズされたエンティティをローカルの MediaWiki API に送信し、PHP プロセスがカナリアを削除したかどうかを確認します。ループバック API URL のみを使用し、一時ディレクトリをクリーンアップします。
python poc.py --api-url http://127.0.0.1:4000/api.php
Wikibase Repository と Widgets を有効にした分離されたローカルインストールに対してのみ実行してください。