remm 01/04/05 19:45:48 Modified: catalina/src/share/org/apache/catalina/servlets DefaultServlet.java WebdavServlet.java Log: - Add addiotional check to prevent using DELETE and PUT on URLs starting with /WEB-INF and /META-INF. Revision Changes Path 1.35 +16 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Index: DefaultServlet.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- DefaultServlet.java 2001/04/05 18:47:50 1.34 +++ DefaultServlet.java 2001/04/06 02:45:48 1.35 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.34 2001/04/05 18:47:50 remm Exp $ - * $Revision: 1.34 $ - * $Date: 2001/04/05 18:47:50 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.35 2001/04/06 02:45:48 remm Exp $ + * $Revision: 1.35 $ + * $Date: 2001/04/06 02:45:48 $ * * ==================================================================== * @@ -122,7 +122,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.34 $ $Date: 2001/04/05 18:47:50 $ + * @version $Revision: 1.35 $ $Date: 2001/04/06 02:45:48 $ */ public class DefaultServlet @@ -575,6 +575,12 @@ String path = getRelativePath(req); + if ((path.toUpperCase().startsWith("/WEB-INF")) || + (path.toUpperCase().startsWith("/META-INF"))) { + resp.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } + // Looking for a Content-Range header if (req.getHeader("Content-Range") != null) { // No content range header is supported @@ -636,6 +642,12 @@ } String path = getRelativePath(req); + + if ((path.toUpperCase().startsWith("/WEB-INF")) || + (path.toUpperCase().startsWith("/META-INF"))) { + resp.sendError(HttpServletResponse.SC_FORBIDDEN); + return; + } // Retrieve the Catalina context // Retrieve the resources 1.17 +10 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java Index: WebdavServlet.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- WebdavServlet.java 2001/04/05 19:03:08 1.16 +++ WebdavServlet.java 2001/04/06 02:45:48 1.17 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.16 2001/04/05 19:03:08 remm Exp $ - * $Revision: 1.16 $ - * $Date: 2001/04/05 19:03:08 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/WebdavServlet.java,v 1.17 2001/04/06 02:45:48 remm Exp $ + * $Revision: 1.17 $ + * $Date: 2001/04/06 02:45:48 $ * * ==================================================================== * @@ -125,7 +125,7 @@ * are handled by the DefaultServlet. * * @author Remy Maucherat - * @version $Revision: 1.16 $ $Date: 2001/04/05 19:03:08 $ + * @version $Revision: 1.17 $ $Date: 2001/04/06 02:45:48 $ */ public class WebdavServlet @@ -1685,6 +1685,12 @@ private boolean deleteResource(String path, HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + + if ((path.toUpperCase().startsWith("/WEB-INF")) || + (path.toUpperCase().startsWith("/META-INF"))) { + resp.sendError(WebdavStatus.SC_FORBIDDEN); + return false; + } String ifHeader = req.getHeader("If"); if (ifHeader == null)