Wordpress

WordPress オンライン コース プラグイン ‘LearnPress’ は、事前認証 SQL インジェクションやローカル ファイル インクルージョンなど、複数の重大な欠陥に対して脆弱でした。

LearnPress は学習管理システム (LMS) プラグインで、WordPress Web サイトでオンライン コース、レッスン、クイズを簡単に作成して販売できるようにし、訪問者にフレンドリーなインターフェイスを提供しながら、Web サイト開発者にコーディングの知識を必要としません。

100,000 を超えるアクティブなサイトで使用されているプラグインの脆弱性は、2022 年 11 月 30 日から 12 月 2 日の間にPatchStackによって発見され、ソフトウェア ベンダーに報告されました。

この問題は、2022 年 12 月 20 日の LearnPress バージョン 4.2.0 のリリースで修正されました。ただし、 WordPress.org の統計によると、アップデートを適用したのは約 25% のみです。

アクティブなインストールの LearnPress バージョン
アクティブなインストール(WordPress)の LearnPress バージョン

これは、約 75,000 の Web サイトが脆弱なバージョンの LearnPress を使用している可能性があることを意味し、重大なセキュリティ上の欠陥にさらされており、その悪用は深刻な影響を与える可能性があります.

脆弱性の詳細

PatchStack によって発見された最初の脆弱性は CVE-2022-47615 で、攻撃者が Web サーバーに保存されているローカル ファイルの内容を表示できるようにする、認証されていないローカル ファイル インクルージョン (LFI) の欠陥です。

これにより、資格情報、認証トークン、および API キーが公開され、さらなる侵害につながる可能性があります。

この脆弱性は、特定の変数 ($template_pagination_path、$template_path、および $template_path_item) を適切に検証しない「list_courses」関数にある、Web サイトの API 要求を処理するコードの一部に見られます。

攻撃者は、特別に細工した API リクエストを送信し、3 つの変数に悪意のある値を使用することで、CVE-2022-47615 を悪用する可能性があります。

2 番目の重大な欠陥は CVE-2022-45808 で、認証されていない SQL インジェクションであり、機密情報の漏えい、データの変更、および任意のコードの実行につながる可能性があります。

この脆弱性は、Web サイトの SQL クエリを処理する機能にあり、クエリ パラメータの「$filter」変数を正しくサニタイズおよび検証しないため、攻撃者が悪意のあるコードを挿入することができます。

SQL インジェクションの例
SQL インジェクションの例(PatchStack)

LearnPress の古いバージョンに影響を与える 3 つ目の欠陥は CVE-2022-45820 で、これはプラグインの 2 つのショートコード (「learn_press_recent_courses」と「learn_press_featured_courses」) の認証済み SQL インジェクションの欠陥であり、「$args」変数の入力を適切に検証およびサニタイズできません。

PatchStack は、下書きされた投稿で特別に細工されたショートコードを使用して、「寄稿者」ユーザーが SQL インジェクションをトリガーする方法を示す概念実証のエクスプロイトを提供しました。

この脆弱性は、新しいブログ投稿を編集または作成できるユーザーが実行する必要があり、欠陥のリスクを制限します。

ベンダーは、脆弱な変数の許可リストとサニタイズを導入するか、ユーザー入力にテンプレートを含める機能を削除することで、上記の問題を修正しました。

LearnPress に依存している Web サイトの所有者は、バージョン 4.2.0 にアップグレードするか、利用可能なセキュリティ アップデートを適用できるようになるまでプラグインを無効にすることをお勧めします。