
| プラグイン名 | FindAll |
|---|---|
| 脆弱性の種類 | ローカルファイルインクルージョン |
| CVE番号 | CVE-2026-22478 |
| 緊急 | 高い |
| CVE公開日 | 2026-03-06 |
| ソースURL | CVE-2026-22478 |
緊急アドバイザリー: FindAll WordPressテーマ(≤ 1.4)におけるローカルファイルインクルージョン — サイトオーナーが今すぐ行うべきこと
著者: WP‑Firewallセキュリティチーム
日付: 2026-03-10
エグゼクティブサマリー
FindAll WordPressテーマ(バージョン≤ 1.4)に影響を与えるローカルファイルインクルージョン(LFI)脆弱性が公開され、CVE-2026-22478が割り当てられました。これにより、認証されていない攻撃者がターゲットサイトからローカルファイルを含め、その内容を表示できるようになり、秘密(データベースの資格情報、設定ファイル)を暴露したり、さらなるリモートコード実行を引き起こしたり、サーバーの設定に応じてサイト全体の侵害を可能にすることがあります。.
数千のウェブサイトを保護するWordPressセキュリティチームとして、私たちはこの脆弱性を高リスク(CVSS 8.1)と見なしています。特にテーマの更新やベンダーパッチがまだ利用できない場合は、即時の緩和が必要です。このアドバイザリーでは、脆弱性の影響、検出信号、安全な緩和手順、および露出を減らすためにすぐに適用できる推奨WAF/バーチャルパッチルールを説明します。また、運用インシデント対応チェックリストと長期的な予防ガイダンスも含めています。.
注記: このアドバイザリーは、エクスプロイトレベルの詳細を提供することを避けています。私たちの目標は、管理者が迅速かつ責任を持ってサイトを保護する手助けをすることです。.
このアドバイザリーについて
- 影響を受けるソフトウェア: FindAll WordPressテーマ
- 影響を受けるバージョン: ≤ 1.4
- 脆弱性の種類:ローカルファイルインクルージョン (LFI)
- CVE: CVE-2026-22478
- 必要な特権: なし (未認証)
- 深刻度:高(CVSS 8.1)
- パッチ状況: 公開時点で公式パッチは利用できません
ローカルファイルインクルージョンとは何か、そしてそれが危険な理由
ローカルファイルインクルージョン(LFI)は、アプリケーションがユーザー制御の入力を受け入れ、適切な検証やサニタイズなしにサーバーファイルシステムから含めるまたは読み取るファイルを指定する場合に発生します。攻撃者がその入力を制御できる場合、次のことを試みることができます:
- データベースの資格情報や秘密鍵を含む敏感な設定ファイル(例: wp-config.php, .env)を読み取る。.
- データベース、外部サービス、またはWordPress管理アカウントへのアクセスを許可する資格情報を収集する。.
- チェーン攻撃(例えば、資格情報を明らかにするファイルを読み取り、その後その資格情報を使用してコンテンツを変更したり、ウェブシェルを注入したり、データベースにアクセスしたりする)。.
- システムを騙して、攻撃者が提供したPHPコードを含むログファイルやキャッシュされたユーザーアップロードを含める(サーバーが書き込み可能なディレクトリでPHPを実行する場合) — これによりリモートコード実行(RCE)につながる可能性があります。.
- さらなる悪用を助けるサーバーパス情報を開示する。.
この特定のLFIは認証なしで悪用可能であり、広く使用されているテーマファイルパスをターゲットにしているため、影響を受けるサイトはこれを緊急の問題として扱うべきです。.
現実的な悪用シナリオ
攻撃者は、以下の実際の方法でLFIを悪用する傾向があります:
- 設定ファイルを列挙して読み取る:
- wp-config.phpを読み取ってDB_USERNAME、DB_PASSWORD、およびSECRET_KEYSを抽出する。.
- .envや他の開発者ファイルのようなサイトルート下のファイルを読み取る。.
- 機密情報のためのシステムファイルを読み取る:
- /etc/passwd(偵察に役立つ)
- データベースダンプや認証情報を含む可能性のあるバックアップまたはアップロードディレクトリ内のファイル
- ログポイズニングまたはアップロード制御されたファイルを利用する:
- ウェブサーバーが後で含める場所にPHPペイロードを書き込む(例:巧妙に作成されたユーザーアップロードや書き込み可能なキャッシュログを介して)、インクルード操作がトリガーされるときにコード実行を引き起こす。.
- 永続的なアクセスにピボットする:
- 漏洩した認証情報を使用してデータベースにアクセスし、管理者ユーザーを作成したり、サイトオプションを変更したりする。.
- 初期のエクスプロイトを超えて持続するバックドアやウェブシェルをサイトにアップロードする。.
脆弱性が認証を必要としないため、自動スキャナーやボットは開示後すぐに大量の悪用を試みる。したがって、迅速な緩和が不可欠である。.
妥協の指標(IoCs)と監視すべき事項
あなたのサイトが標的にされたか悪用されたかを評価する際には、以下の指標についてログとサイトの内容を確認する:
サーバーログ(アクセスログ):
- 疑わしいパラメータを含むHTTPリクエストのような
ファイル=,インク=,ページ=,テンプレート=,パス=,表示=, 、または他のフィールドと組み合わせた../シーケンスまたはエンコードされたディレクトリトラバーサルパターン(%2e%2e%2f). - ダブルエンコードされたトラバーサルを含むリクエスト:
%252e%252e%252f. - 2. LFIによって一般的にターゲットとされるファイルを取得しようとするリクエスト:
/etc/passwd,wp-config.php,.env,php://filter/convert.base64-encode/resource=、 またはdata://. - 3. トラバーサルパターンを持つリクエストに対する4xx/5xxレスポンスの突然の急増。.
4. リクエストボディ:
- 5. ..
..,..%2f,php://,data:, 7. ファイルシステムとコンテンツ:.
8. アップロード、キャッシュ、またはテーマフォルダ内の新しいまたは変更されたPHPファイル。
- 9. WordPressユーザーリストにおける予期しない管理者ユーザー。.
- 10. 変更されたWordPressオプション(サイトURL、管理者メールの変更)。.
- 11. 疑わしいスケジュールされたタスク(cron)またはwp_options内の不明なエントリ。.
- 12. 暗号化されたPHPや疑わしいスクリプトを含む投稿やオプションフィールド内の予期しないコンテンツ。.
データベース:
- 13. 新しいデータベースユーザーまたは付与された権限。.
- 14. 上記のいずれかを特定した場合は、可能な妥協として扱い、以下のインシデント対応チェックリストに従ってください。.
15. 即時の緩和策(短期的、パッチ前).
16. FindAllテーマ(≤ 1.4)を実行している場合は、公式のパッチを待たずに今すぐ以下の即時ステップを実施してください。
17. 変更を加える前に完全なオフラインバックアップを実行します。サーバーの外にコピーを保持してください。.
- バックアップを取ります(ファイル + データベース)
18. サイトをメンテナンスモードにします(適切な場合)。. - 19. 緩和中にさらなる自動攻撃を防ぎます。
緩和している間にさらなる自動攻撃を防ぎます。. - 脆弱なテーマを削除または無効にします。
1. 安全なアクティブテーマに移動できる場合は、そうしてください。.
2. テーマがアクティブサイトシェルであり、簡単に交換できない場合は、一時的にサイトをオフラインにし、静的ページを提供することを検討してください。. - 脆弱なエンドポイントへのアクセスを制限してください。
3. インクルードパラメータを受け入れる特定のテーマファイルを特定できる場合は、ウェブサーバールールを介してアクセスをブロックするか、そのファイルへの直接の公開リクエストを拒否してください。.
4. アップロード/キャッシュ/一時ディレクトリ内の公開書き込み可能なPHP実行を無効にしてください。. - 5. すぐにWAF/仮想パッチを適用してください。
6. Webアプリケーションファイアウォール(WAF)またはホストベースのルールセットを管理している場合は、次のルールを適用してください:- 7. ディレクトリトラバーサルパターンを含むリクエストをブロックします:
../,%2e%2e%2f,..%2f,%2e%2e%5c9. (URLエンコードされたトラバーサル)。. - 疑わしいラッパーをブロック:
php://,data:,expect://,file://. - 10. コア設定ファイルにアクセスしようとするリクエストをブロックします:ファイル内容を読み取るために使用される構文を含むリクエスト。
wp-config.php,.env,config.phpなど - を含むリクエストをブロックします
php://filter11. ファイルを選択するように見える任意のパラメータに対してデフォルト拒否姿勢を適用します(可能であれば、既知のファイル名の厳密なホワイトリストのみを許可します)。.
12. wp-config.phpが世界中から読み取れることがないようにしてください。.
- 7. ディレクトリトラバーサルパターンを含むリクエストをブロックします:
- ファイル権限を強化する
13. アップロードおよびキャッシュディレクトリを可能な限り0755に設定し、.htaccess / ウェブサーバー設定を介して実行を無効にしてください。.
14. 悪意のあるファイルや疑わしい変更がないかサイトをスキャンしてください。. - 15. 信頼できるマルウェアスキャナーを使用して、ウェブシェルや異常なPHPファイルを特定してください。
16. テーマ、プラグイン、およびアップロードディレクトリ内の最近変更されたファイルを手動で確認してください。.
17. wp-config.phpにアクセスされた証拠が見つかった場合は、すぐにデータベースの資格情報を回転させ、新しいパスワードでwp-config.phpを更新してください。. - 露出が疑われる場合は秘密をローテーションします。
18. 露出した可能性のあるAPIキー、トークン、およびサービスアカウントを回転させてください。.
19. ウェブサーバーのアクセスログ、エラーログ、およびアプリケーションログを監視し、悪用の試みを確認し続けてください。. - ログを注意深く監視する
悪用の試みを監視するために、ウェブサーバーのアクセスログ、エラーログ、およびアプリケーションログを引き続き監視してください。.
1. 推奨されるWAFルール(例)
2. 以下は、一般的なLFI悪用パターンをブロックするために使用できる安全で防御的なWAFルールの概念です。これらは防御的なパターンとして意図されており、悪用ペイロードを作成したり明らかにしたりするために使用しないでください。広範な展開の前に、可能な限りステージング環境でルールをテストしてください。.
3. 例:明らかなディレクトリトラバーサルおよびラッパーの試行をブロックする(概念的表現 — あなたのWAF構文に適応させてください):
- 4. いずれかのパラメータ値に含まれている場合はブロック
\.\./または%2e%2e%2f8. (大文字と小文字を区別しない)。. - 4. いずれかのパラメータ値に含まれている場合はブロック
php://,data:,file://,expect://. - 含まれるリクエストをブロックする
wp-config.php5. クエリ文字列またはPOSTデータ内で。. - 6. 使用をブロック
php://filter7. ファイルを読み取るために使用されるラッパー。.
8. ModSecurity(例ルール、あなたの環境に適応させてください):
# Block common directory traversal attempts SecRule ARGS|ARGS_NAMES|REQUEST_URI "(?:\.\./|\.\.\\|%2e%2e%2f|%2e%2e%5c)" "id:100001,phase:2,deny,log,msg:'Detect Directory Traversal LFI attempt'" # Block access to wp-config.php or .env via query string or body SecRule REQUEST_URI|ARGS|REQUEST_HEADERS "(wp-config\.php|\.env|config\.php)" "id:100002,phase:2,deny,log,msg:'Blocked attempt to access sensitive file'" # Block php wrappers SecRule ARGS|REQUEST_URI "(?:php://|data:|expect://|file://|phar://)" "id:100003,phase:2,deny,log,msg:'Blocked wrapper usage in input'" # Optional: stricter rule to block inclusion parameters if their values are not in an allowed list SecRule ARGS_NAMES "file|template|include|page|view|path" "id:100004,phase:2,pass,ctl:ruleRemoveById=999999" # Then create a whitelist for known safe values if feasible.
Nginx(概念):
# Deny requests that contain traversal patterns
if ($request_uri ~* "\.\./|%2e%2e%2f") {
return 403;
}
# Deny parameters that mention wp-config.php
if ($query_string ~* "wp-config\.php|\.env") {
return 403;
}
注:
- # クエリ文字列またはボディを介してwp-config.phpまたは.envへのアクセスをブロック.
- SecRule REQUEST_URI|ARGS|REQUEST_HEADERS "(wp-config\.php|\.env|config\.php)" "id:100002,phase:2,deny,log,msg:'機密ファイルへのアクセス試行をブロック'".
- # phpラッパーをブロック.
SecRule ARGS|REQUEST_URI "(?:php://|data:|expect://|file://|phar://)" "id:100003,phase:2,deny,log,msg:'入力内のラッパー使用をブロック'"
# オプション:許可リストに値が含まれていない場合にインクルージョンパラメータをブロックするための厳格なルール
- SecRule ARGS_NAMES "file|template|include|page|view|path" "id:100004,phase:2,pass,ctl:ruleRemoveById=999999".
- すべて
php://filter# 可能であれば、安全な既知の値のホワイトリストを作成してください。. - 10. # トラバーサルパターンを含むリクエストを拒否
wp-config.php,.env、 または/etc/passwdif ($request_uri ~* "\.\./|") {. - return 403;.
これらのアラートは、ブロックするIPを優先順位付けし、インシデントが発生した場合に法医学的証拠を提供します。.
インシデント対応チェックリスト(ステップバイステップ)
悪用が疑われる場合は、次の手順を順番に実行してください:
- コンテイン
- WAFルールを適用してさらなる試行をブロックします(IPまたはパターンをブロック)。.
- 必要に応じてサイトをオフラインにするか、メンテナンスモードを有効にします。.
- 保存してください
- 後で分析するために、ログ、ファイル、およびデータベーススナップショットの法医学的コピーを作成します。.
- 疑わしいファイルのコピーを保持します。.
- 検出
- ウェブシェルや予期しないPHPファイルをスキャンします。.
- 疑わしいパラメータやリクエストについてアクセスログとエラーログを確認します。.
- 撲滅
- 特定されたバックドアや悪意のあるファイルを削除します。.
- 侵害されたファイルを信頼できるバックアップからのクリーンなバージョンに置き換えます。.
- 回復する
- 資格情報をローテーションします(データベース、FTP、SSH、APIキー)。.
- 信頼できるソースからテーマ/プラグインを再インストールします(利用可能な場合はパッチ適用されたバージョンに更新します)。.
- 必要に応じてクリーンなバックアップからサイトを復元します。.
- インシデント後
- ファイルの権限やプラグイン/テーマのレビューを含む完全なセキュリティ監査を実施します。.
- WAFルールと監視を見直し、強化します。.
- ステークホルダーおよび(必要に応じて)顧客に侵害と修復手順について通知します。.
- 報告
- 顧客データが漏洩した場合は、通知のための適用される開示および法的要件に従います。.
ハードニングと長期的な緩和
将来のこのような脆弱性のリスクを減らすために、これらのベストプラクティスを適用します:
- テーマ、プラグイン、およびWordPressコアを更新し、緊急パッチの計画を立てます。.
- インストールされたコンポーネントを最小限に抑える:未使用のテーマやプラグインを削除します。.
- ベンダーパッチが利用可能になるまで、既知の脆弱性に対して仮想パッチを適用できる管理されたWAFを使用します。.
- ファイルの権限を制限し、アップロードディレクトリでPHPの実行を無効にします:
- .htaccess(Apache)またはlocationブロック(Nginx)を使用して、/wp-content/uploads、/wp-content/cache、および類似のディレクトリでPHPの実行を拒否します。.
- データベースユーザーには最小権限を使用します。.
- 可能な限り、制限された権限を持つ各サイト用の別々のデータベースユーザーを使用します。.
- 予期しないファイルの変更を検出するためにファイル整合性監視を実装します。.
- 定期的にテストされたバックアップをオフサイトまたはオフラインで保存します。.
- コードベースとサードパーティコンポーネント(SCA — ソフトウェア構成分析)をスキャンして、脆弱な依存関係を特定します。.
- 定期的なセキュリティレビューとペネトレーションテストを実施します。.
管理されたファイアウォール/仮想パッチがどのように役立つか(実践的な説明)
脆弱性が公に開示され、公式のパッチがすぐに利用できない場合、管理されたファイアウォールを介して仮想パッチを適用することで、テーマベンダーが安全な修正を準備して配布する間に時間を稼ぐことができます。仮想パッチ:
- 脆弱なアプリケーションコードに到達する前に、既知の攻撃パターンを傍受してブロックします。.
- 新しい悪用パターンが観察されると、セキュリティチームによってリアルタイムで更新されます。.
- 偽陽性を最小限に抑えるために脆弱性に合わせて調整できます(例:ディレクトリトラバーサルやラッパー使用を示すリクエストのみをブロック)。.
- 認証されていない脆弱性に対して即時の保護を提供し、自動化されたボットの悪用を減少させます。.
- 互換性やテストの制約により、テーマ/プラグインをすぐに更新できない組織に特に役立ちます。.
忘れないでください:仮想パッチは緩和策であり、恒久的な修正ではありません。脆弱なコンポーネントを置き換えるか、恒久的なベンダー提供のパッチを計画して展開している間に使用する必要があります。.
実践的な例:ログで探すべきもの(サンプル)
以下は疑わしい安全なログ行の例です(URLエンコードされたバージョンが表示される場合があります):
- GET /?file=../../../../wp-config.php HTTP/1.1
- GET /?page=../../../../etc/passwd HTTP/1.1
- POST /theme-handler.php のボディに含まれる
php://filter/convert.base64-encode/resource=wp-config.php - 異なるトラバーサルエンコーディングを試みる単一のIPからの繰り返しリクエスト。.
そのようなエントリを見つけた場合は、IPをブロックし、ログを保持し、調査を行ってください。.
サイトが侵害された場合 — 修復の優先事項
- 露出した認証情報を取り消す(DBパスワード、APIキーを回転させる)。.
- 管理者および特権アカウントのパスワードを強制的にリセットする。.
- クリーンなソースからWordPressコア、テーマ、およびプラグインを再インストールする。.
- 侵害されたファイルを既知の良好なバージョンに置き換えてください。.
- バックドアを検索して削除する — ウェブシェルは無害な名前を使用することが多い; 最近変更されたファイルを検査する。.
- 設定を強化し、再悪用を防ぐためにWAFルールを追加する。.
エージェンシーとホストへのコミュニケーションガイダンス
複数のクライアントサイトを管理する場合や多くのWordPressインストールをホストする場合:
- 影響を受けたテーマ(≤ 1.4)を使用しているサイトを迅速に特定する。.
- 外部向けの商業サイトおよび機密データを扱うサイトでの緩和を優先する。.
- 複数のサイトにわたってネットワーク/WAF層で仮想パッチを適用し、管理の負担を軽減する。.
- クライアントと調整する:明確なステータス更新、変更した内容、およびバックアップと認証情報の回転を含む次のステップを提供する。.
プロアクティブなセキュリティが重要な理由(実世界の文脈)
幅広く展開されているテーマにおけるLFIのような脆弱性は、自動化され、多くのサイトにスケールできるため、攻撃者にとって魅力的なターゲットです。テーマベンダーパッチを待つ受動的な姿勢は、データの露出やサービスの中断のリスクがあります。仮想パッチ、継続的な監視、タイムリーな更新などのプロアクティブな対策は、リスクと回復時間を大幅に削減します。.
WP‑Firewallの緩和:私たちがどのように支援するか
WP‑Firewallでは、管理されたファイアウォールと仮想パッチ機能は、修復を行っている間にこのLFIのような脆弱性からWordPressサイトを保護するように設計されています。私たちのアプローチには:
- 新たに開示された脆弱性に関連する悪用パターンをブロックするための迅速なシグネチャ展開が含まれます。.
- 偽陽性を減らすためにWordPress特有のコンテキストに調整された監視および検出ルール。.
- 認証情報のローテーション、スキャン、およびクリーンアップに関するガイダンスとインシデントサポート。.
WP‑Firewallを使用している場合、恒久的な修正を計画している間に自動化された攻撃試行を防ぐために、保護されたサイト全体でこの特定のLFIパターンに対する緩和ルールを有効にできます。.
責任ある開示と次のステップに関する特別な注意
テーマ開発者の場合は、次の手順に従ってください:
- 報告を迅速に認識してください。.
- 脆弱なコードパスを特定し、適切な入力検証とホワイトリストを実装します。.
- パッチを適用したバージョンをリリースし、ユーザーにアップグレードガイダンスを提供します。.
- セキュリティベンダーと調整し、安全なパッチが利用可能になったときに仮想パッチと緩和ルールを更新し、後で削除できるようにします。.
あなたがサイトの所有者である場合:
- 公式パッチのためにテーマベンダーを監視します。.
- ベンダーパッチがリリースされ、検証され次第、すぐに適用します。.
- 変更ログとバックアップを保持し、必要に応じて元に戻せるようにします。.
新しいプラン:あなたのサイトを即座に保護 — WP‑Firewallからの無料基本保護
すべてのサイト所有者が緊急事態に即座に反応できるわけではないことを理解しています。サイト所有者が無償で即座に保護を受けられるように、迅速で重要な防御に特化した基本(無料)プランを提供します:
- タイトル: 即時、無償の保護 — WP‑Firewall Basic(無料)を試してください
- 基本(無料)で得られるもの:
- マネージドファイアウォール保護
- 無制限の帯域幅
- OWASPトップ10に対するWebアプリケーションファイアウォール(WAF)ルール
- マルウェアスキャナー
- 重要な脅威に対する迅速な緩和(適用可能な場合は仮想パッチ)
- サインアップする理由:
- 脆弱なコンポーネントをパッチまたは置き換えている間、一般的な悪用パターンをブロックする管理された保護層を取得します。.
- 単一サイトの所有者、小規模クライアントを持つ代理店、即時のリスク削減が必要な人に最適です。.
今すぐ無料の基本保護を開始してください: https://my.wp-firewall.com/buy/wp-firewall-free-plan/
(追加機能が必要な場合、当社のスタンダードおよびプロプランでは、自動マルウェア除去、IPブラックリスト/ホワイトリスト機能、月次セキュリティレポート、そして高度な管理サービスを追加します。)
よくある質問(FAQ)
質問: テーマがパッチ適用版に更新されましたが、WAFはまだ必要ですか?
答え: はい。WAFは深層防御を提供します。更新をテストおよび展開している間に悪用の試みをブロックし、ゼロデイ攻撃やまだ更新していないプラグイン/テーマの他の脆弱性から保護するのに役立ちます。.
質問: これらのWAFルールは正当な機能を壊しますか?
答え: よく作られたルールは誤検知を最小限に抑えるように設計されています。検出モードでテストし、正当なトラフィックに影響がないことを確認したら、ブロックモードに切り替えることをお勧めします。正当なファイル選択パラメータに対するホワイトリストアプローチが最も安全な運用戦略です。.
質問: ログに疑わしいリクエストを見つけました — 最初に何をすべきですか?
答え: 問題のあるIPを周辺でブロックし、ログを保存し、バックアップを取り、その後上記のインシデントレスポンスチェックリストに従ってください。.
最終的な推奨事項
- 影響を受けたテーマを使用している場合、CVE‑2026‑22478(FindAllテーマ ≤ 1.4 LFI)を即時の脅威として扱ってください。.
- 可能であれば、今すぐテーマを無効にするか置き換えてください。そうでない場合は、WAF/仮想パッチを適用し、ファイル権限をすぐに強化してください。.
- ログを監視し、侵害の指標をスキャンしてください。開示が疑われる場合は、資格情報をローテーションしてください。.
- 管理ツールを使用して仮想パッチを迅速に適用し、ベンダーパッチが準備されるまでの攻撃ウィンドウを短縮してください。.
- バックアップとテスト済みのインシデントレスポンス計画を維持し、将来の開示に迅速に対応できるようにしてください。.
WAFルールの適用、侵害の指標のスキャン、または緩和計画の実施に関して支援が必要な場合、WP‑Firewallチームがサポートできます。当社の管理ファイアウォールは、WordPress、テーマ、プラグインに特化した文脈ルールと迅速な仮想パッチでWordPressサイトを保護します。.
安全を確保し、迅速かつ体系的な対応を優先してください — 行動が早ければ早いほど、長期的な損害のリスクは低くなります。.
WP-Firewall セキュリティチーム
