報告者: Marco Paciaroni (BomboBombone)。
WikiLambda は、未保存コードの認可ルールをネストされた関数データ全体に適用していませんでした。匿名の呼び出し元が、未承認のソースコードを権限境界を越えさせ、設定済みの関数評価器に到達させることが可能でした。
CVE レコードでは、WikiLambda の 1.47.0 より前のバージョンが影響を受けると特定されています。
この問題には WikiLambda と、設定済みの関数オーケストレーター/評価器が必要です。これは未保存コードの送信を統制する権限をバイパスします。評価器は WASM 分離を使用しており、この発見は MediaWiki ホスト上での実行やサンドボックスエスケープを立証するものではありません。
元の報告書には、キャプチャサービスを用いた制御されたローカル比較が記録されています。本来拒否されるべきリクエストが、認可境界を越えて転送されました。これにより未承認のコード送信が立証されましたが、キャプチャサービスはホストコマンドを実行していません。
アップストリームの変更により、未保存コードの検出がネストされたオブジェクトとリストを検査するようになります。リクエストを転送する前に、認可は送信された構造全体にわたるコードを考慮しなければなりません。
python poc.py --api http://127.0.0.1:4000/api.php
ローカルのテスト wiki は、WikiLambda オーケストレーターをスクリプトが起動するループバックキャプチャサービスに向ける必要があります。PoC は拒否された対照とネストされた Z825 リクエストを比較し、無害な返却マーカーを使用します。