This is an automated email from the ASF dual-hosted git repository.

pgil pushed a commit to branch release22.01
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/release22.01 by this push:
     new df9516e5ab Fixed: Avoid exploit using `..` special name in request uri.
df9516e5ab is described below

commit df9516e5ab711cf60cad67323b04ef55396d0b46
Author: Gil Portenseigne <gil.portensei...@nereide.fr>
AuthorDate: Fri Dec 15 17:09:30 2023 +0100

    Fixed: Avoid exploit using `..` special name in request uri.
    
    Before, a user could bypass webapp filter rules using `..` notation
    allowing to access to the complete docBase provided by tomcat.
    
    Example `w3m https://localhost:8443/partymgr/control/../a.txt` could be
    used to access `a.txt` file in partymgr webapp, even though `control` is
    needed to pass filter rules.
---
 .../src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java  | 4 ++++
 1 file changed, 4 insertions(+)

diff --git 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java
 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java
index 302df37f51..df8960b9c9 100644
--- 
a/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java
+++ 
b/framework/webapp/src/main/java/org/apache/ofbiz/webapp/control/ControlFilter.java
@@ -19,6 +19,7 @@
 package org.apache.ofbiz.webapp.control;
 
 import java.io.IOException;
+import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Set;
@@ -159,6 +160,9 @@ public class ControlFilter extends HttpFilter {
                 }
             }
 
+            // normalize to remove ".." special name usage to bypass webapp 
filter
+            uri = Paths.get(uri).normalize().toString();
+
             // Check if the requested URI is allowed.
             if (allowedPaths.stream().anyMatch(uri::startsWith)) {
                 try {

Reply via email to