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

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


The following commit(s) were added to refs/heads/trunk by this push:
     new cf72d42  Fixed: Secure the uploads (OFBIZ-12080)
cf72d42 is described below

commit cf72d425d3029993e3232510a7ee943accc1fbc4
Author: Jacques Le Roux <jacques.le.r...@les7arts.com>
AuthorDate: Sun Feb 27 21:57:38 2022 +0100

    Fixed: Secure the uploads (OFBIZ-12080)
    
    Removes <svg, replaces by onload,build according to
    https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
---
 framework/security/config/security.properties                      | 2 +-
 .../src/test/java/org/apache/ofbiz/security/SecurityUtilTest.java  | 7 ++++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/framework/security/config/security.properties 
b/framework/security/config/security.properties
index 4b52bfd..e827a23 100644
--- a/framework/security/config/security.properties
+++ b/framework/security/config/security.properties
@@ -258,7 +258,7 @@ allowAllUploads=
 #-- If you are sure you are safe for a token you can remove it, etc.
 
deniedWebShellTokens=java.,beans,freemarker,<script,javascript,<body,<form,<jsp:,<c:out,taglib,<prefix,<%@
 page,<?php,exec(,alert(,\
                      
%eval,@eval,eval(,runtime,import,passthru,shell_exec,assert,str_rot13,system,decode,include,page
 ,\
-                     chmod,mkdir,fopen,fclose,new 
file,upload,getfilename,download,getoutputstring,readfile,iframe,object,embed,<svg
 ,\
+                     chmod,mkdir,fopen,fclose,new 
file,upload,getfilename,download,getoutputstring,readfile,iframe,object,embed,onload,build,\
                      python,perl ,/perl,ruby 
,/ruby,process,function,class,InputStream,to_server,wget ,static,\
                      ifconfig,route,crontab,netstat,uname 
,hostname,iptables,whoami,"cmd",*cmd|,+cmd|,=cmd|,localhost,\
                      ",","+",',','+'
diff --git 
a/framework/security/src/test/java/org/apache/ofbiz/security/SecurityUtilTest.java
 
b/framework/security/src/test/java/org/apache/ofbiz/security/SecurityUtilTest.java
index 2854bf6..9e5ee7b 100644
--- 
a/framework/security/src/test/java/org/apache/ofbiz/security/SecurityUtilTest.java
+++ 
b/framework/security/src/test/java/org/apache/ofbiz/security/SecurityUtilTest.java
@@ -61,7 +61,7 @@ public class SecurityUtilTest {
         // Currently used
         // 
java.,beans,freemarker,<script,javascript,<body,<form,<jsp:,<c:out,taglib,<prefix,<%@
 page,<?php,exec(,alert(,\
         // 
%eval,@eval,eval(,runtime,import,passthru,shell_exec,assert,str_rot13,system,decode,include,page
 ,\
-        // chmod,mkdir,fopen,fclose,new 
file,upload,getfilename,download,getoutputstring,readfile,iframe,object,embed,<svg
 ,\
+        // chmod,mkdir,fopen,fclose,new 
file,upload,getfilename,download,getoutputstring,readfile,iframe,object,embed,onload,build\
         // python,perl ,/perl,ruby 
,/ruby,process,function,class,InputStream,to_server,wget ,static,\
         // 
ifconfig,route,crontab,netstat,uname,hostname,iptables,whoami,"cmd",*cmd|,+cmd|,=cmd|,localhost
         // ",","+",',','+'
@@ -112,6 +112,11 @@ public class SecurityUtilTest {
             assertFalse(SecuredUpload.isValidText("download", allowed));
             assertFalse(SecuredUpload.isValidText("getoutputstring", allowed));
             assertFalse(SecuredUpload.isValidText("readfile", allowed));
+            assertFalse(SecuredUpload.isValidText("iframe", allowed));
+            assertFalse(SecuredUpload.isValidText("object", allowed));
+            assertFalse(SecuredUpload.isValidText("embed", allowed));
+            assertFalse(SecuredUpload.isValidText("onload", allowed));
+            assertFalse(SecuredUpload.isValidText("build", allowed));
 
             assertFalse(SecuredUpload.isValidText("python", allowed));
             assertFalse(SecuredUpload.isValidText("perl ", allowed));

Reply via email to