cziegeler 2003/11/14 05:02:09
Modified: . status.xml
src/java/org/apache/cocoon/components/source/impl
ContextSourceFactory.java
Log:
<action dev="CZ" type="fix" fixes-bug="24093">
Disable accessing files outside the context via the context protocol.
</action>
Revision Changes Path
1.194 +4 -4 cocoon-2.1/status.xml
Index: status.xml
===================================================================
RCS file: /home/cvs/cocoon-2.1/status.xml,v
retrieving revision 1.193
retrieving revision 1.194
diff -u -r1.193 -r1.194
--- status.xml 13 Nov 2003 12:32:47 -0000 1.193
+++ status.xml 14 Nov 2003 13:02:09 -0000 1.194
@@ -192,9 +192,9 @@
<changes>
<release version="@version@" date="@date@">
- <action dev="NN" type="fix">
- DUMMY
- </action>
+ <action dev="CZ" type="fix" fixes-bug="24093">
+ Disable accessing files outside the context via the context protocol.
+ </action>
</release>
<release version="2.1.3" date="November 13 2003">
<action dev="DC" type="fix" fixes-bug="24463" due-to-email="[EMAIL
PROTECTED]" due-to="Leo Leonid">
1.5 +12 -6
cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/ContextSourceFactory.java
Index: ContextSourceFactory.java
===================================================================
RCS file:
/home/cvs/cocoon-2.1/src/java/org/apache/cocoon/components/source/impl/ContextSourceFactory.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ContextSourceFactory.java 25 Oct 2003 18:06:20 -0000 1.4
+++ ContextSourceFactory.java 14 Nov 2003 13:02:09 -0000 1.5
@@ -69,9 +69,10 @@
import org.apache.cocoon.environment.Context;
/**
- * A factory for the context protocol using the context of the servlet api.
It builds the
- * source by asking the environment context for the real URL
- * (see [EMAIL PROTECTED]
org.apache.cocoon.environment.Context#getResource(String)}) and then resolving
this real URL.
+ * A factory for the context protocol using the context of the servlet api.
+ * It builds the source by asking the environment context for the real URL
+ * (see [EMAIL PROTECTED]
org.apache.cocoon.environment.Context#getResource(String)})
+ * and then resolving this real URL.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Carsten Ziegeler</a>
* @author <a href="http://www.apache.org/~sylvain">Sylvain Wallez</a>
@@ -142,8 +143,13 @@
}
// Remove the protocol and the first '/'
- int pos = location.indexOf(":/");
- String path = location.substring(pos+1);
+ final int pos = location.indexOf(":/");
+ final String path = location.substring(pos+1);
+
+ // fix for #24093, we don't give access to files outside the context:
+ if ( path.indexOf("../") != -1 ) {
+ throw new MalformedURLException("Invalid path ('../' is not
allowed) : " + path);
+ }
URL u;