[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[drf:2008] Dspaseの脆弱性について
- Date: Tue, 28 Sep 2010 08:10:26 +0900
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