2024/10/30 SecurityOnline — 600 万を超えるアクティブ・インストールを誇る人気の WordPress LiteSpeed Cache プラグインに、深刻なセキュリティ脆弱性が存在することを、Patchstack のセキュリティ研究者 Rafie Muhammad が明らかにした。高度なサーバ・レベルのキャッシュ機能と、WooCommerce/Yoast SEO などのプラグインとの互換性で知られる LiteSpeed Cache に、世界中の WordPress サイトを危険にさらす可能性のある深刻な欠陥が見つかったことになる。

この脆弱性 CVE-2024-50550 (CVSS:8.1) は、認証を必要としない権限昇格の問題であり、一般的なサイト訪問者に対して、管理者権限でのアクセスを許す可能性が生じる。Patchstack の Rafie Muhammad によると、この脆弱性はプラグインのユーザー・シミュレーション機能に存在し、既知の値を使用する脆弱なセキュリティ・ハッシュ・チェックの使用に起因するとのことだ。このチェックをバイパスした攻撃者は、侵害したサイトに悪意のプラグインをアップロードしてアクティブ化できるという。
この脆弱性の仕組みは、プラグインのクローラー機能で使用される LiteSpeed Cache の “is_role_simulation()” 関数を中心に展開される。大規模なブルートフォース攻撃を防ぐために、厳格な 120 秒のハッシュ生成ウィンドウによる、プライマリの Flash ハッシュ・チェック機能が存在するが、「$_COOKIE[‘litespeed_hash’] の2回目のチェックは、クローラー設定の調整により操作できるという。Muhammad は、「クローラーの実行時間を、2500秒 ~ 4000秒などの現実的かつ高めの値に設定することで、攻撃者によるエクスプロイトを実行が達成される」と説明している。
この脆弱性を悪用するには、プラグインのクローラー設定を、以下のようにコンフィグする必要がある:
- Crawler->General Settings->Crawler: ON
- Crawler->General Settings->Run Duration: 2500 – 4000
- Crawler->General Settings->Interval Between Runs: 2500 – 4000
- Crawler->General Settings->Server Load Limit: 0
- Crawler->Simulation Settings->Role Simulation: 1 (ID of user with Administrator role)
- Crawler->Summary->Activate: Turn every row to OFF except Administrator
このハッシュ生成プロセスの欠陥について Muhammad は、「”rrand()” 関数は、”mt_rand()” を呼び出すのに “mt_srand((int)((float) microtime() * 1000000))” を引き続いて使用する。それにより、生成されたハッシュ値には、32 個のランダムな文字が取り込まれるが、その幅は 100 万通りに制限されてしまう。この制限されたランダム性により、特にクローラーの負荷制限が低い設定になっている場合には、ブルートフォース攻撃が容易になる」と強調している。
この脆弱性 CVE-2024-50550 は、Patchstack Alliance のメンバーである TaiYou により報告され、その後に、LiteSpeed Cache バージョン 6.5.2 で対処されている。サイト管理者に対して強く推奨されるのは、すぐに LiteSpeed Cache を更新し、悪用の可能性を回避することだ。LiteSpeed Cache などの、広く使用されているプラグインの脆弱性は、攻撃者に対してドアを開けてしまう可能性があるため、堅牢なコンフィグとタイムリーなパッチが必要である。
このところ、毎月のように深刻な脆弱性が発生している LiteSpeed Cache です。今回は、ブルートフォース攻撃を防ぐためのアクセス制限が、計算通りに機能していないという問題が明らかにされ、修正されたとのことです。ご利用のチームは、ご注意ください。よろしければ、LiteSpeed で検索も、ご参照ください。
You must be logged in to post a comment.