Tutor LMSのPHPオブジェクトインジェクション脆弱性、攻撃者によるWordPressサイトへのWebシェル設置を許す

Tutor LMSWordPressプラグインに存在する重大な脆弱性により、低権限のユーザーが脆弱なウェブサイト上でリモートコードを実行し、Webシェルを設置できる可能性があることが分かりました。

Wordfenceの研究者チームは、AIリサーチエージェント「Argus」の支援を受け、2026年8月23日にこの脆弱性を発見しました。影響を受けるのはTutor LMSバージョン4.0.7以前で、これは10万以上のWordPressサイトに導入されている広く使われているeラーニングプラグインです。

CVE-2026-78175として追跡されているこの脆弱性は、CVSSスコア10点満点中8.8を記録しました。Tutor LMSの開発元であるThemeumは、2026年9月10日にリリースされたバージョン4.0.8でこの問題を修正しています。

問題はプラグインの出金アカウント管理機能、具体的には認証済みAJAXアクションであるtutor_save_withdraw_accountに存在していました。

脆弱性のあるハンドラーは、リクエストに有効なWordPressのnonce(ワンタイムトークン)が含まれているかどうかは確認していたものの、ユーザーがインストラクター権限を持っているかどうかは検証していませんでした。

研究者によると、攻撃者が制御可能な出金フィールドの値は、シリアライズされたユーザーメタデータとして保存される前に、WordPressのesc_sql()関数によって処理されていたとのことです。

この関数は本来SQLクエリの処理を目的としたものであり、後にシリアライズされて保存される値のために使うべきものではありません。

入力にパーセント記号が含まれていた場合、WordPressは一時的にそれを長いプレースホルダー値へと展開します。プラグインはその展開されたデータをシリアライズし、データベースに保存していました。

データベースへの書き込みが完了する前に、WordPressはプレースホルダーを通常のパーセント記号へと戻します。

これにより、シリアライズされた文字列に宣言されたサイズと実際のサイズとの間に不一致が生じます。WordPressが後にこの破損した値をアンシリアライズする際、PHPが攻撃者の制御下にある追加データまで読み込んでしまう可能性がありました。

悪意のあるオブジェクトが破棄される際、そのデストラクタが攻撃者の選択したファイルパスに攻撃者制御下のコンテンツを書き込むことが可能でした。これにより、WordPressのアップロードディレクトリ内にPHP製のWebシェルを作成できてしまう恐れがあります。

Webシェルを設置されると、攻撃者はWebサーバーの権限の下でリモートコマンド実行が可能になります。

これを悪用すれば、データの窃取、ウェブサイトのコンテンツ改ざん、永続的な管理者アクセスの作成、マルウェアの展開、あるいはホスティング環境内でのさらなる侵入拡大などが行われる可能性があります。

今回のパッチでは、メタデータ処理におけるesc_sql()の安全でない使用も削除されています。ユーザー入力に対してより安全なサニタイズ手法を適用し、データを保存する前に出金方法を検証するようになりました。

脅威調査の効率化と手作業の削減にANY.RUNを活用する16,000以上のSOCチームに加わりましょう。貴チーム向けに詳しく見る

翻訳元: https://cyberpress.org/tutor-lms-enables-webshells/

本記事は cyberpress.org の記事を翻訳・要約したものです。