アドバイザリーID: DRUPAL-SA-CORE-2022-014
プロジェクト: Drupal core
日付: 2022 年 7 月 20日
セキュリティーリスク:重大 リスクレベル 15 (最大 25)
AC:Basic/A:Admin/CI:All/II:All/E:Theoretical/TD:Uncommon
脆弱性:任意の PHP コードの実行
CVE IDs:CVE-2022-25277
詳細
Drupal コアは、アップロード時に危険な拡張子を持つファイル名をサニタイズし(参考:SA-CORE-2020-012)、ファイル名から先頭および末尾のドットを除去してサーバー設定ファイルのアップロードを防止します(参考:SA-CORE-2019-010)。
しかし、以前はこの2つの脆弱性に対する保護機能が正しく連携して動作していませんでした。その結果、htaccess 拡張子を持つファイルのアップロードを許可するようにサイトが設定されていた場合、これらのファイルのファイル名は適切にサニタイズされないことになります。これにより、Drupal コアがデフォルトで提供する .htaccess ファイルに対する保護をバイパスし、Apache ウェブサーバ上でリモートコード実行の可能性があります。
この問題は、フィールド管理者が明示的に拡張子として htaccess の許可を必要とするようにファイルフィールドを設定すること(制限付き許可)、あるいは許可されたファイルアップロードを上書きするコントリビュートモジュールまたはカスタムコードによって軽減されます。
対応方法
以下の最新バージョンをインストールしてください。
- Drupal 9.4 をご利用の場合は Drupal 9.4.3 へアップデートしてください
- Drupal 9.3 をご利用の場合は Drupal 9.3.19 へアップデートしてください
Drupal 9 のバージョンで 9.3.x より前のものは全てサポートが終了しており、セキュリティーリリースの適用を受けることはできません。Drupal 8 もすでにサポートが終了していることにご注意下さい。
Drupal 7 には影響がありません。
files ディレクトリの .htaccess が上書きされていないことまたはサブディレクトリ内でオーバーライドされていないかの確認方法
ウェブサーバーが Apache httpd を AllowOverride で使用している場合、存在する .htaccess ファイルが意図的なものであるかどうかを files ディレクトリとサブディレクトリの中で確認する必要があります。.htaccess という名前のファイルを探すには、公開ファイルディレクトリとプライベートファイルディレクトリの両方のルートで、次のコマンドを実行します。
find ./ -name ".htaccess" -print
Drupalは、公開ファイルディレクトリのルートに以下のような.htaccess ファイルを自動的に作成します。
# Set the catch-all handler to prevent scripts from being executed.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2006_006
<Files *>
# Override the handler again if we're run later in the evaluation list.
SetHandler Drupal_Security_Do_Not_Remove_See_SA_2013_003
</Files># If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php7.c>
php_flag engine off
</IfModule>
<IfModule mod_php.c>
php_flag engine off
</IfModule>
与えられたファイルディレクトリの正しい .htaccess 設定について、システム管理者に確認してください。
このアドバイザリーは、Drupal Steward の対象外です。
関連コンテンツ
- Drupal Core の脆弱性について (SA-CORE-2024-001)
- Drupal Core の脆弱性について (SA-CORE-2023-006)
- Drupal 導入前に必ず考えたい「保守」のこと
- Drupal Core の脆弱性について (SA-CORE-2023-005)
- Drupal Core の脆弱性について (SA-CORE-2023-004)
- Drupal Core の脆弱性について (SA-CORE-2023-003)
- Drupal Core の脆弱性について (SA-CORE-2023-002)
- Drupal Core の脆弱性について (SA-CORE-2023-001)
- Drupal Core の脆弱性について (SA-CORE-2022-016)
- Drupal Core の脆弱性について (SA-CORE-2022-015)
Drupal 初心者講座バックナンバー
- Drupal 9/10 初心者講座
- 第 1 回 歴史に見る Drupal の DNA
- 第 2 回 Drupal はフレームワークか?CMS か?他の CMS との比較
- 第 3 回 Drupal の特徴
- 第 4 回 Drupal 9 / 10 のインストール (1)
- 第 5 回 Drupal 9 / 10 のインストール (2)
- 第 6 回 Drupal にコンテンツを投稿してみる
- 第 7 回 Drupal のボキャブラリとタクソノミーの使い方
- 第 8 回 コンテンツ管理における Drupal と他の CMS との比較
- 第 9 回 Drupal のブロックシステム
- 第 10 回 Drupal の標準クエリビルダー Views の使い方
- 第 11 回 Drupal と他の CMS のクエリビルダー機能を比較
- 第 12 回 Drupal の多言語機能と他の CMS やサービスとの比較
- 第 13 回 Drupal の権限設定と WordPress や Movable Type との比較
- 第 14 回 Drupal のテーマシステムについて
- 第 15 回 Drupal の拡張モジュールの選定と使い方
- 第 16 回 Drupal をもっと知りたい方に向けた各種情報