
CVE-2025-68400 - ChurchCRMはConfirmReportEmail.phpにおいて時間ベースのブラインドSQLインジェクションに対して脆弱です
| フィールド | 詳細 |
|---|---|
| CVE ID | CVE-2025-68400 |
| 深刻度 | 緊急 |
| アドバイザリ | アドバイザリを表示 |
| 発見者 | Lukasz Rybak |
ChurchCRM 6.3.0 のレガシーエンドポイント /Reports/ConfirmReportEmail.php に、重大な SQL インジェクションの脆弱性が存在します。この機能は UI から削除されましたが、ファイルはデプロイされたまま URL から直接到達可能です。これは、デッドだが到達可能なコードの典型的なケースです。割り当てられた権限がゼロのユーザーを含む、認証済みのすべてのユーザーが、familyId パラメータを介して SQL インジェクションを悪用できます。
問題箇所は以下のファイルにあります:
src/Reports/ConfirmReportEmail.php
脆弱なコード(82–83行目):
if (InputUtils::legacyFilterInput($_GET['familyId'], 'int')) {
$sSubQuery = ' and fam_id in (' . $_GET['familyId'] . ') ';
}
なぜ脆弱なのか:
legacyFilterInput() の戻り値が完全に無視されています。$_GET['familyId'] の値が SQL クエリに直接連結されています。デッドだが到達可能なエンドポイント:
/Reports/ConfirmReportEmail.php?familyId=<value>
通常時の動作:
302 Redirect → /v2/family/<id>&PDFEmailed=
) または -- を含む悪意のあるペイロードは、リダイレクトのロジックを壊し、脆弱な SQL を実行します。
権限がゼロのユーザーでも、この脆弱性を悪用できます。
SLEEP(5) ペイロードはレスポンスを確実に遅延させ、SQL の実行を証明します。
認証済みユーザーが以下にアクセスします:
http://localhost:8101/Reports/ConfirmReportEmail.php?familyId=1)%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(5)))a)%20--%20-
確認された結果:
sqlmap による確認:
本 CVE は、協調的な脆弱性開示の慣行に従い、責任を持って開示されました。ここに記載されている情報は、教育目的および防御目的のみで提供されます。