スポンサーリンク
2025年初頭、人気WordPressプラグイン Coming Soon <=1.1.1 にローカルファイルインクルード(LFI)脆弱性 CVE-2025-26894
が報告されました。?file=../../wp-config.php のようにパラメータを細工すると、wp-config.php
が読み出され、データベース接続情報や認証キーが丸見えになります。放置するとサイト乗っ取りや個人情報流出のリスク大。即アップデート or 無効化が必須です!
- 1. 脆弱性の概要と影響範囲
- 2. 問題の発生箇所:該当コードの読み解き
- 3. 攻撃手順デモ:LFIでwp-config.phpを読む
- 4. 二次被害シナリオ:DB乗っ取りまでの流れ
- 5. 対策:即アップデート&無効化手順
- 6. 再発防止策:安全な入力検証とコードレビュー
- 7. まとめ & 参考リンク
スポンサーリンク
1. 脆弱性の概要と影響範囲
- プラグイン名:Coming Soon <=1.1.1
- CVE ID:CVE-2025-26894
- 種 別:Local File Inclusion (LFI)
- 深刻度:高 (CVSS 7.8)
- 影響範囲:全ての WordPress サイト(プラグイン有効時)
- 公開日:2025-02-15
攻撃者はパラメータ ?file=
に任意パスを指定可能。サーバ上の任意ファイルを読み出せます。
2. 問題の発生箇所:該当コードの読み解き
以下はプラグイン version 1.1.1 の一部抜粋です。
<?php
// coming-soon.php の一部
if ( isset($_GET['file']) ) {
$path = $_GET['file'];
// 本来はテンプレート内のファイルのみ読み込みたい
include plugin_dir_path(__FILE__) . 'templates/' . $path;
}
?>
行 | 問題点 |
---|---|
3 | $_GET[‘file’] を検証せず直接結合 |
4 | plugin_dir_path で相対パスを固定しないため「../../」で任意階層へ |
結果、?file=../../wp-config.php
で root ディレクトリの wp-config.php を読み出せてしまいます。
3. 攻撃手順デモ:LFIでwp-config.phpを読む
- プラグイン有効化済みの WordPress サイトにアクセス
- ブラウザに以下のURLを入力:
https://example.com/wp-content/plugins/coming-soon/coming-soon.php?file=../../wp-config.php
- 以下のように wp-config.php がまるまる表示される:
define('DB_NAME', 'wordpress_db'); define('DB_USER', 'wp_user'); define('DB_PASSWORD', 'secret_password'); define('DB_HOST', 'localhost');
DB資格情報や認証キーが漏洩し、全権侵入の大チャンスになります。
4. 二次被害シナリオ:DB乗っ取りまでの流れ
- DB認証情報を入手
- 外部から MySQL/MariaDBへ接続
- ユーザー権限を昇格 or テーブル書き換え
- 管理者アカウントへパスワード変更 & マルウェア埋め込み
- サイト改ざん & スパム配信
実際に複数の攻撃チェーンが報告されており、放置は絶対NGです。
5. 対策:即アップデート&無効化手順
5.1 プラグインのアップデート
- WordPress管理画面 > プラグイン > Coming Soon を確認
- バージョン 1.1.2 以降へ更新
5.2 当面の無効化
# FTP/SSHでサイトに接続
cd wp-content/plugins
mv coming-soon coming-soon_disabled
管理画面にアクセスできない場合は上記でプラグイン無効化できます。
6. 再発防止策:安全な入力検証とコードレビュー
- 必ず
basename()
でファイル名のみを受け取る - 許可テンプレート一覧をホワイトリスト管理
- include_path に“../”が含まれないか検査
- 静的解析ツール(PHPStan/Psalm)でLFIルールを追加
<?php
$allowed = ['comingsoon.php','header.php','footer.php'];
$file = basename($_GET['file']);
if (! in_array($file, $allowed, true)) {
http_response_code(400);
exit('不正なファイル指定です');
}
include __DIR__ . '/templates/' . $file;
?>
7. まとめ & 参考リンク
- Coming Soon ≤1.1.1 に重大な LFI 脆弱性 (CVE-2025-26894)
- wp-config.php など機密ファイルが丸見えに
- 即バージョンアップ or プラグイン無効化を
- 入力検証と静的解析で再発防止を徹底