ANNAIマガジン
The word 'security' on the screen
この記事の目次

アドバイザリー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 の対象外です。

 

 
フッターの採用情報
 
Kuniyoshi Toneの写真

この記事を書いた人: Kuniyoshi Tone

ANNAI株式会社

デジタルマーケティングを担当。金剛山を遠くに眺めて大阪からリモートワークしています。

 

関連コンテンツ