[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[drf:2008] Dspaseの脆弱性について



DRFメーリングリストの皆様


はじめまして、長崎大学の澤村と申します。

Dspaceの1.6.0以前をお使いの皆様へ
セキュリティ対策についてお知らせしたいと思い、投稿いたします。

先日IPAを通じて本学に、Dspaceに対する
クロスサイトスクリプティング攻撃の危険性の報告がありました。

危険性が報告されたのは、存在しないハンドル番号がURLに
入力された際の以下のエラー画面で、任意のスクリプトが
実行可能ということです。
 http://naosite.lb.nagasaki-u.ac.jp/dspace/handle/%3C%3E (パッチ済み)


本学のDspaceのバージョンは,「1.4.2」です。
江別の鈴木様に,修正用のパッチを作成していただきました。
添付のパッチ(配布ついて了承済み)を以下の手順で実行することで、
特殊文字等をエスケープさせて回避することができます。

===========  作業手順  =============
パッチあてからDSpaceの再構築までの作業は次の通りです。
DSPACE-SRCはDSpaceのソースがあるディレクトリ、TOMCATは
Tomcatのインストールディレクトリです。

cp dspace-1.4.2-security.patch(添付パッチ) DSPACE-SRC
cd DSPACE-SRC
patch -p0 < dspace-1.4.2-security.patch
ant update
TOMCAT/bin/shutdown.sh
cp build/dspace.war TOMCAT/webapps/
cd TOMCAT/webapps
rm -rf dspace
TOMCAT/bin/startup.sh
=========================================


Dspaceの1.6.2以降のバージョンをお使いの方は問題無いようです。

Dspace1.6.0、1.6.2以降でバグとして報告・修正されています。
 http://jira.dspace.org/jira/browse/DS-250
 http://jira.dspace.org/jira/browse/DS-607
1.5.0〜1.6.0をご使用中の皆様は上記URLの必要なパッチを実行
されていはいかがでしょうか?


クロスサイトスクリプティング攻撃の危険性について
ご検討いただけたら幸いです。


***************************************
長崎大学 学術情報部学術情報管理課
学術コンテンツ担当  澤村 俊祐
電話(内線)2195 (外線)095-819-2195
Email s-sawa @ xxxxxxxxxxxxxxxx
***************************************
-- 

***************************************
長崎大学 学術情報部学術情報管理課
学術コンテンツ担当  澤村 俊祐
電話(内線)2195 (外線)095-819-2195
Email s-sawa @ xxxxxxxxxxxxxxxx
***************************************
Index: src/org/dspace/app/webui/servlet/HandleServlet.java
===================================================================
--- src/org/dspace/app/webui/servlet/HandleServlet.java	(���r�W���� 554)
+++ src/org/dspace/app/webui/servlet/HandleServlet.java	(��ƃR�s�[)
@@ -39,6 +39,7 @@
  */
 package org.dspace.app.webui.servlet;
 
+import org.apache.commons.lang.StringEscapeUtils;
 import java.io.IOException;
 import java.io.StringWriter;
 import java.net.URLEncoder;
@@ -159,7 +160,7 @@
         {
             log.info(LogManager
                     .getHeader(context, "invalid_id", "path=" + path));
-            JSPManager.showInvalidIDError(request, response, path, -1);
+            JSPManager.showInvalidIDError(request, response, StringEscapeUtils.escapeHtml(path), -1);
 
             return;
         }
@@ -252,7 +253,7 @@
             log.info(LogManager.getHeader(context,
                     "Handle not an item, collection or community", "handle="
                             + handle));
-            JSPManager.showInvalidIDError(request, response, path, -1);
+            JSPManager.showInvalidIDError(request, response, StringEscapeUtils.escapeHtml(path), -1);
 
             return;
         }
Index: src/org/dspace/app/webui/util/JSPManager.java
===================================================================
--- src/org/dspace/app/webui/util/JSPManager.java	(���r�W���� 553)
+++ src/org/dspace/app/webui/util/JSPManager.java	(��ƃR�s�[)
@@ -45,6 +45,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.log4j.Logger;
 import org.dspace.authorize.AuthorizeException;
 import org.dspace.core.Context;
@@ -163,7 +164,7 @@
             HttpServletResponse response, String badID, int type)
             throws ServletException, IOException
     {
-        request.setAttribute("bad.id", badID);
+        request.setAttribute("bad.id", StringEscapeUtils.escapeHtml(badID));
         response.setStatus(HttpServletResponse.SC_NOT_FOUND);
 
         if (type != -1)
--
DRF mailing list
DRF @ xxxxxxxxxxxxxxxx
https://ml.hines.hokudai.ac.jp/mailman/listinfo/drf