Contao 2.11.2のセキュリティ修正

Contao 2.11.2では2つのセキュリティ上の修正が行われました。1つは重要で、もう1つはそうでもないとされています。

いずれにも共通しているのはバックエンドにログインしているユーザーに関連していて、

  1. 悪意を持ったバックエンドのユーザーによる攻撃
  2. バックエンドのユーザーが受ける脅威

と、いったものとなります。さらに後者は初期状態の設定では起きないものです。

公開しているウェブサイトに対する脅威ではないことで、当サイトのように個人で運用していてバックエンドのユーザーは管理者ユーザーしかいないような場合は最初の脆弱性も問題にはなりません。

一方、バックエンドに多くのユーザーがいて、コンテンツを管理している場合は1.の問題は注意が必要となります。

対処方法

Contao 2.11.2のリリースアナウンスにも記述されていますが、対処の方法はContao 2.11.2への更新です。それが困難な場合は contao/popup.php に修正を加えます。変更の内容は以下のようになります。

--- contao/popup.php.orig	2012-03-10 05:32:01.000000000 +0900
+++ contao/popup.php	2012-03-15 00:13:14.000000000 +0900
@@ -102,6 +102,12 @@ class Popup extends Backend
 			die('File not found');
 		}
 
+		// Check whether the file is mounted (thanks to Marko Cupic)
+		if (!$this->User->hasAccess($this->strFile, 'filemounts'))
+		{
+			die('Permission denied');
+		}
+
 		// Open download dialogue
 		if ($this->Input->get('download') && $this->strFile)
 		{