Tournamatchに任意ファイル削除の脆弱性、4.7.1で修正
WordPressプラグインTournamatchの4.7.1未満に、Subscriber権限のユーザーがサーバー上のファイルを削除でき、サイト乗っ取りにつながる脆弱性があります。該当サイトは4.7.1へ更新し、会員アカウントも見直してください。
急ぎ度: 早めに
CVSS v3は9.6で、Subscriber権限があればネットワーク越しに悪用でき、修正版の4.7.1がすでに出ているため、早めの更新が妥当です。
関係があるか
WordPressでTournamatchプラグインを使っていて、Subscriber以上のロールを持つアカウントが存在するサイトが対象です。プロフィール画像やチーム画像を会員にアップロードさせている構成は、特に確認が必要です。
| 製品 | 影響を受ける版 | 修正版 |
|---|---|---|
| Tournamatch(WordPressプラグイン) | 4.7.1未満 | 4.7.1 |
確かめ方
- 1WordPress管理画面の「プラグイン」でTournamatchの版を見て、4.7.1未満かどうかを確認します。
- 2WP-CLIが使えるなら、
wp plugin get tournamatch --field=versionで版を確認できます。 - 3
wp user list --role=subscriberなどで、Subscriber以上のロールのアカウントが存在するかを確認します。
何が起きたか
Tournamatchに、サーバー上の任意のファイルを削除されてしまう脆弱性があります。wp-config.php のような設定ファイルも対象になり得るため、サイト全体の乗っ取りにつながるとされています。
プロフィール画像やチーム画像を新しくアップロードすると、プラグインは以前保存した画像を削除します。このとき、削除する画像のパスが正しい範囲のものかを検証・制限していません。CWE-73(ファイル名やパスを外部から制御できる問題)に分類されています。
WPScanが2026年11月5日に公開しました。修正版は4.7.1です。
公開から日が浅く、対象サイトが残っているうちに更新を済ませておきたい段階だと筆者は見ています。
攻撃の流れ
-
1
アカウント取得
Subscriber以上のロールを持つアカウントでログインします。
-
2
画像の差し替え
プロフィール画像やチーム画像を新しくアップロードする機能を使います。
-
3
削除対象が未検証
以前保存した画像として扱われるパスが検証されず、サーバー上の別のファイルが削除されます。
-
4
サイトに被害
wp-config.phpなどが失われると、サイトの停止や乗っ取りに至るおそれがあります。
どう悪用されるか
悪用にはログインが必要で、ロールはSubscriber(WordPressで最も低い権限の一つ)以上であれば足ります。ネットワーク越しに実行でき、攻撃の複雑さは低く、管理者など他の利用者の操作も要りません。
悪用されると、サーバー上のファイルが削除されます。wp-config.php が失われた場合は、サイトの完全な乗っ取りにつながるとされています。CVSSのベクターでも、完全性と可用性への影響が高く評価されています。
今すぐやること
-
1
Tournamatchを4.7.1以上に更新する
管理画面の「プラグイン」から更新します。本番に当てる前に、テスト環境で大会ページや画像のアップロードが動くかを確かめておくと安心です。
-
2
バックアップと重要ファイルを確認する
更新の前に、ファイルとデータベースのバックアップが取れているかを確認します。あわせて、
wp-config.phpなど主要なファイルが残っているかも見ておきます。WordPressのルートディレクトリで実行してください。ls -l wp-config.php -
3
アカウントを棚卸しする
Subscriber以上のアカウントに、心当たりのないものや使われていないものがないかを確認し、不要なものは削除または停止します。
-
4
ファイルの消失やサイトの異常を調べる
更新済みでも、公開前後にファイルが消えていないか、画像のアップロード操作に不審なものがないかを、Webサーバーのログと合わせて確認します。
-
5
最新の情報を確認する
悪用の状況や追加の情報は、WPScanの該当ページとプラグイン提供元の告知で確認します。
すぐ更新できないとき
すぐに更新できないときは、Tournamatchを一時的に無効化します。大会やチームの機能は止まりますが、この脆弱性の経路は閉じられます。無効化できない場合は、設定の「誰でもユーザー登録ができるようにする」が有効になっていないかを確認し、必要がなければ止めます。提供元が公式の回避策を案内しているかは、告知で確かめてください。
背景
wp-config.php は、WordPressがデータベースに接続するための情報などを持つ設定ファイルです。このファイルが失われるとサイトは通常どおり動かず、復旧や乗っ取りの経路になり得ます。今回の脆弱性は、画像を差し替えるという会員向けの日常的な操作の中に、ファイル削除のきっかけがある点が特徴です。
WPScanの一覧には、同じくSubscriber権限で任意のファイルやフォルダーを削除できる脆弱性として、WebTotem Backups(1.1.0未満)、10Web Booster(2.32.11未満)、Super Forms(6.3.317未満)の報告も並んでいます。会員が増えるプラグインでは、低い権限のアカウントから届く処理にも、パスの検証が必要です。
よくある質問
Q.更新したら、wp-config.phpがすでに消えていました。どうすればよいですか。
この記事は、取得元の公開情報をもとに、人が監修しながらAIを活用して執筆しています。執筆と監修は佐々木 航が担い、公開したあとも人が内容を確認しています。誤りに気づいたときは直し、記事の末尾に訂正の行を残します。対応を決める前に、下の原文と参照先も確認してください。
影響パッケージ
| パッケージ | 影響を受ける版 → 修正版 | |
|---|---|---|
| CVETournamatch |
4.7.1 未満→ 4.7.1 |
4.7.1 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
The Tournamatch WordPress plugin before 4.7.1 does not validate or restrict the path of a previously stored profile or team image before deleting it when a new image is uploaded, allowing users with a role as low as Subscriber to delete arbitrary files on the server, such as wp-config.php, which can lead to a full site takeover.
出典: CVE.org (CVE Program・cvelistV5) NVD GitHub Advisory
参照URL
- web contact@wpscan.com
- web nvd.nist.gov
- web wpscan.com
- web github.com