
Uncanny Groups for LearnDash (uncanny-learndash-group) は、LearnDash LMS (sfwd-lms) 用のサードパーティ製プラグインです。このプラグインにより、グループリーダー (LearnDash のカスタムロール) は、フロントエンドから自身の LearnDash グループのユーザーを管理できます。
グループリーダーは、既存ユーザーを自分のグループに追加できます。既存ユーザーは自動的に追加されます (つまり、招待を受け入れる必要はありません)。
サイト管理者が「Allow group leaders to edit users」(グループリーダーによるユーザー編集を許可) というプラグイン機能を有効にしている場合、グループリーダーはグループメンバー (ユーザー) の名前とメールアドレスも変更できます。この機能はデフォルトで無効です。
「Allow group leaders to edit users」設定が有効な場合、グループリーダーは管理者のメールアドレスを変更し、それによって管理者アクセスを取得できます。CVE-2024-8350 と組み合わせて悪用された場合、「Allow group leaders to edit users」設定の状態に関係なく、すべてのグループリーダーが管理者になることができます。
このプラグインは、既存のグループメンバー (ユーザー) を新しいグループに追加する際に、そのロールをチェックしません。「Allow group leaders to edit users」が有効な場合、グループリーダーは既存の管理者を自分のグループに追加することで、サイトの管理者権限を取得できます。グループに既存の管理者を追加した後、グループリーダーは管理者のメールアドレスを変更し、パスワードをリセットするだけです。
Uncanny Owl は 2024-08-26 に不十分なパッチ (6.1.0.1) を公開しました。この脆弱性は、管理者になるための悪用はできなくなりましたが (CVE-2024-8350 と組み合わせた場合を除く)、グループリーダーが編集者以下になるための悪用は依然として可能でした。「Allow group leaders to edit users」を有効にしている必要がありました。
Uncanny Owl は 2024-09-11 に完全なパッチ (6.1.1) を公開しました。
REST API の権限チェックの欠如により、グループリーダーはユーザーの連絡先詳細を変更できます。CVE-2024-8349 と組み合わせて悪用された場合、すべてのグループリーダーが自分自身に管理者権限を付与できます。
このプラグインには、「Allow group leaders to edit users」(グループリーダーによるユーザー編集を許可) というサイト全体の権限設定があります。有効にすると、グループリーダーはグループメンバー (ユーザー) の名前とメールアドレスを変更できます。この機能はデフォルトで無効です。
ただし、この機能を無効のままにしても、フロントエンドに設定が表示されなくなるだけです。グループリーダーは、同じアクションを伴う POST リクエストを依然として送信できます。グループリーダーはすべてのユーザーを自分のグループに追加できるため、すべてのユーザーの名前とメールアドレスも変更できます。
https://example.com/wp-json/ulgm_management/v1/edit_user/?
action=edit-user&group-id={Group ID}&edit-user-id={user ID}&first_name=Lorem&last_name=Ipsum&email={attacker’s email address}
(グループ ID とユーザー ID は、ページコンテンツの一部として確認できます。)
CVE-2024-8349 と組み合わせて悪用された場合、すべてのグループリーダーが自分自身に管理者権限を付与できます。
Uncanny Owl は 2024-08-26 に不十分なパッチ (6.1.0.1) を公開しました。この脆弱性は部分的に修正されましたが、やはりフロントエンドのみでした。「Allow group leaders to edit users」設定を有効にしている必要がありました。
グループリーダーのグループに管理者が含まれている場合、グループリーダーは管理者のメールアドレスを変更するためのモーダルを表示できなくなりました。ただし、REST API は依然としてグループリーダーにその操作を許可していました。
グループリーダーは、CVE-2024-8349 と組み合わせて CVE-2024-8350 を悪用することで、依然として管理者になることができました。グループリーダーは、まず編集者を自分のグループに追加し、編集者のアカウントを乗っ取る必要がありました。その後、グループリーダー (今や編集者) は、LearnDash のバックエンドから管理者を追加し、Uncanny Groups の REST API を通じて管理者のメールアドレスを変更できました。
Uncanny Owl は 2024-09-11 に完全なパッチ (6.1.1) を公開しました。
Uncanny Owl は脆弱性レポートに適切に対応し、90 日間の責任ある開示期間内に脆弱性に対処しました。
サイト管理者は、グループ A のグループリーダーが、ユーザーの同意なしにグループ B のメンバーであるユーザーを追加できることに注意する必要があります。これは、例えばグループ A とグループ B が異なる企業である場合、機密性および GDPR コンプライアンス上の問題になり得ます。ただし、これはプラグインの意図された動作であるため、脆弱性ではありません。
私は 2021 年に、この機密性の問題への対処に関する機能リクエストを提出しました。Uncanny Owl は現在、私の機能リクエストを再検討する予定です。それまでの間、影響を受けるサイトは、ulgm_gdpr_is_group_leader_allowed フィルターとカスタムフロントエンドテンプレートのオーバーライドを使用して、独自の回避策を実装できます。