WordPress Tutor LMS プラグインの脆弱性 CVE-2026-78175 が FIX:Subscriber 権限での RCE の恐れ

Over 100,000 WordPress Sites Exposed to RCE Through Tutor LMS Vulnerability

2026/09/19 gbhackers — Wordfence Argus が発見したのは、WordPress 向け e ラーニングプラグイン Tutor LMS の脆弱性 CVE-2026-78175 (CVSS:8.8) であり、10 万以上の WordPress サイトが影響を受ける可能性があると警告している。この脆弱性は 2026年8月23日に、AI を活用する脆弱性調査エージェント Wordfence Argus により発見され、Wordfence Threat Intelligence チームにより検証された。

認証済みユーザーによる PHP オブジェクト・インジェクションの攻撃チェーンを通じて、最終的に任意のコード実行へ至る可能性があると、Wordfence は警告している。この脆弱性 CVE-2026-78175 は Tutor LMS バージョン 4.0.7 以下に影響を及ぼすものであり、バージョン 4.0.8 で修正されている。また、この脆弱性を悪用する低権限のユーザーは、リモートコード実行 (RCE) を通じて脆弱なサーバを制御する可能性がある。

Tutor LMS プラグインは、WordPress ベースの教育ポータル/オンラインコース・プラットフォーム/学生管理サイトの構築に広く使用されている。特に重要なのは、多くの導入環境で学生の公開登録が許可されていることであり、この脆弱性の悪用に際して必要となる Subscriber レベルの認証は、攻撃に対する障壁としてほとんど機能しない可能性がある。

攻撃者は、通常の学生アカウントの作成/有効なフロントエンド nonce の取得/脆弱な AJAX 機能の呼び出しなどを行える。脆弱なコンポーネントは、プラグインの出金アカウントを管理するものであり、具体的には tutor_save_withdraw_account AJAX ハンドラだと特定されている。

このエンドポイントでは有効な nonce が要求されるが、権限/ロールの確認は実施されていない。Wordfence によると、この nonce はフロントエンドのスクリプトを通じて認証済みユーザーに公開されていたため、ログイン済みの購読者であれば、誰でもハンドラへアクセスできる状況にある。

この攻撃チェーンは、攻撃者が制御する出金フォームデータの安全でない処理から始まる。このプラグインは、送信された値を WordPress の esc_sql() 関数で処理した後に、update_user_meta() により保存する。esc_sql() はデータベース・クエリをエスケープするための関数だが、後からメタデータとして保存するためにシリアライズされるデータに使用され、シリアライズ・データの長さの不一致という危険な状況を引き起こす。

WordPress は SQL のエスケープ処理中に、パーセント記号を内部的にプレースホルダー・トークンへ置き換える。この処理で拡張された値は、その拡張後の長さを使用してシリアライズされるが、データベースへ書き込まれる前にプレースホルダーが 1 文字のパーセント記号へ戻される。

Tutor LMS の脆弱性

その結果、データベースには、宣言されている長さが実際の長さより大きい、シリアライズ済み文字列が格納される可能性がある。攻撃者が制御するデータは、$_POST[‘withdraw_method_field’][$method] を通じて受け渡され、204 行目の tutor_utils()->avalue_dot() により取得される。その後、WordPress が不正なメタデータをデシリアライズすると、PHP が想定された文字列の境界を越えて、攻撃者が制御するデータまで読み取る可能性がある。

攻撃者が制御する POST フィールド名を悪用して、細工したシリアライズ済みオブジェクトのデータ列を注入できるため、この破損を引き起こす仕組みを PHP オブジェクト・インジェクションへと発展させることが可能になると、研究者たちは指摘している。

悪意のあるメタデータが保存された後に、この脆弱性の発動が可能になる。同じハンドラに対して 2 回目のリクエストを送信すると、WordPress が変更を確認する際に以前に保存されたユーザー・メタデータを取得してデシリアライズを実行するため、ペイロードが発動する可能性がある。

Tutor LMS が出金データを取得する際にもペイロードが発動する可能性があり、その処理にはアカウント設定/出金関連のダッシュボード・ページなどが含まれる。

Wordfence の研究者が確認したのは、プラグインに同梱された PayPal Composer Autoloader/Guzzle の FileCookieJar クラスを悪用する、実行可能な Property-Oriented Programming (POP) 攻撃チェーンである。


Disclosure Timeline (Source : Wordfence).
Disclosure Timeline (Source : Wordfence).

この攻撃チェーンにより、オブジェクトが破棄される際に、攻撃者が制御する悪意のある内容が、PHP により攻撃者が細工したファイルパスへ書き込まれる可能性がある。攻撃に成功した攻撃者は、Web からアクセス可能なアップロード・ディレクトリに PHP ペイロードを書き込み、Web サーバの権限で OS コマンドを実行する恐れがある。

ベンダーである Themeum は 8月24日に報告を確認し、9月10日に Tutor LMS バージョン 4.0.8 をリリースしている。このアップデートでは、出金アカウント用エンドポイントへの Instructor ロールの確認の追加/安全でない esc_sql() 処理の削除/出金方法の検証に加えて、プラグインで定義された信頼済みの許可リストにより送信可能なフィールドを制限する修正が実施された。

Wordfence Premium/Care/Response のユーザーには、8月25日の時点でファイアウォール・ルールが提供され、Wordfence の無料ユーザーには、同じ保護機能が 9月24日に提供される予定である。このファイアウォール・ルールは補完的な防御策として有効だが、管理者はパッチ適用の代替策として扱うべきではない。

ComponentDetails
PluginTutor LMS – eLearning and online course solution
CVECVE-2026-78175
VulnerabilityAuthenticated PHP Object Injection leading to RCE
SeverityCVSS 8.8 High
Affected versionsTutor LMS 4.0.7 and earlier
Fixed versionTutor LMS 4.0.8
Required accessSubscriber-level account or higher
Additional conditionMonetization feature enabled; open registration can create a practical unauthenticated path

WordPress 管理者にとって必要なことは、Tutor LMS を直ちにバージョン 4.0.8 以降へアップグレードした上で、公開登録の必要性を確認し、最近作成された Subscriber アカウントと wp-content/uploads 配下での想定外のファイルの有無を調査することである。サイト所有者に求められるのは、Web サーバのログを確認し、tutor_save_withdraw_account への通常とは異なる認証済み AJAX リクエストの有無を調査することである。

外部公開された学習プラットフォームを運用する組織には、不審なアカウントの認証情報をリセットすること/Tutor LMS の出金設定に関連するユーザー・メタデータを確認することが推奨される。さらに、脆弱性の公開後もプラグインが未修正の状態だった場合には、侵害の有無を調査すべきである。