2017年5月24日
転載歓迎

concrete5 8.1.0 までのフルページキャッシュ XSS 脆弱性と修正方法について (JVNDB-2017-003138)

2017/5/18 JVN で発表された、フルページキャッシュを悪用した concret5 のクロスサイトスクリプティング (XSS) 脆弱性についてのご報告、対応方法のお知らせです。対象は concrete5 8.1.0 までのすべての concrete5 です。

恐れ入りますが、本事象は、既存サイトの場合、カノニカル URL を設定していただくことが、解決策となります。

パッチの割当ではなく、カノニカル URL の設定、もしくはサーバーのバーチャルドメイン設定で対象ドメイン以外は concrete5 サイトにアクセス出来ないよう設定していただくことをお願いします。

JVNの情報

http://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-003138.html

  

概要

対象: concret5 8.1.0 までの全ての concrete5

種類: クロスサイトスクリプティング (キャッシュポイズニング)

JVNの深刻度: 警告 (注意 , 警告, 危険 の2段階目)

内容:  

IP アドレスだけで直接アクセスできる設定されているサーバー上で、カノニカル URL が設定されておらず、フルページキャッシュを作成するよう設定されている concrete5 で URL を書き換えられ、別のサイトなどへ遷移を促せてしまう。

HackerOne

https://hackerone.com/reports/148300

 

修正方法

カノニカル URL を設定する。

● concrete5.6 以前

/config/site.php にて下記の設定がない場合、下記の設定を追加する。

define('BASE_URL', 'https://サイトURL');
define('DIR_REL', ''); // concrete5 がドメインルートから下層にある場合、ディレクトリを記入。最後のスラッシュは不要。

 

例:サイトが https://eample.co.jp/concrete5/ 配下にある場合

define('BASE_URL', 'https://example.co.jp');
define('DIR_REL', '/concrete5');

  

● concrete5.7 以降

管理画面 - システムと設定 - URL とリダイレクト

内で、カノニカルURL にサイトの URL を入れる。

 

● サーバーの設定で対応する

特定のドメイン以外からアクセスがあっても concrete5 の領域を表示しない設定にする。

(Apache や nginx の設定で、デフォルトサーバーは、空のページを返すように設定する。)

 

● 修正パッチ

8.2.0 では、カノニカル URL が入力されていない場合、相対パスを出力するような修正が加えられますが、一番の解決方法は、カノニカル URL を設定することになるかと思います。

https://github.com/concrete5/concrete5/pull/4021/files


8.2.0 に修正パッチがリリースされますが、対応できるのは限定的なため、カノニカル URL を利用するのが一番の解決策となり、8.2.0 以降の新規インストールでは、インストール時にカノニカル URL の設定をオンにしてインストールされるようになります。

 

掲示板

本件にご意見・質問のある方は、フォーラムの該当トピックなどでお問合わせ可能です。

 

お手数をおかけいたします。

 

以上