Wingsは、無料でオープンソースのゲームサーバ管理パネルであるPterodactylのサーバコントロールプレーンです。バージョン1.7.0から1.12.0未満の間、Wingsはアクティビティログエントリを処理する際にSQLiteの最大パラメータ制限を考慮しておらず、権限の低いユーザーがパネルをアクティビティレコードで氾濫させる状況を引き起こす可能性があります。Wingsはアクティビティログをパネルに送信した後、処理済みのアクティビティエントリをWingsのSQLiteデータベースから削除します。しかし、SQLite 3.32.0時点での最大パラメータ制限32766を考慮していません。もしWingsが一度のクエリで32766以上のエントリをSQLiteデータベースから削除しようとすると、エラー(SQLロジックエラー: SQL変数が多すぎます(1))が発生し、データベースからいかなるエントリも削除されません。これらのエントリはその後無期限に再処理され、cronが実行されるたびにパネルに再送されます。この脆弱性を悪用することで、攻撃者はWingsが同じアクティビティデータを繰り返しパネルにアップロードし続ける状況を引き起こし(毎回新しいアクティビティを含むように増大させ)、パネルのデータベースサーバのディスク容量が不足するまで継続させることが可能です。バージョン1.12.0で本問題は修正されています。
|