Kusal Kithul-Godage created WW-5287:
---------------------------------------

             Summary: Make excludedPackageNames check more stringent
                 Key: WW-5287
                 URL: https://issues.apache.org/jira/browse/WW-5287
             Project: Struts 2
          Issue Type: Improvement
          Components: Core
    Affects Versions: 6.1.1
            Reporter: Kusal Kithul-Godage


{{struts.excludedPackageNames}} and {{struts.excludedPackageNamePatterns}} only 
do a check against the package of the declaring and target classes of an OGNL 
expression target.

For more robust security, we should be checking the package of every superclass 
and implemented interface. This will also be more consistent with 
{{struts.excludedClasses}} which does an {{#isAssignableFrom}} check.

This is rather straightforward by leveraging the following methods, but will 
come at a slight performance cost:
{{org.apache.commons.lang3.ClassUtils#getAllInterfaces}}
{{org.apache.commons.lang3.ClassUtils#getAllSuperclasses}}

Additionally, we should ensure that for any 
{{struts.excludedPackageExemptClasses}}, an assignable class exists for every 
matching excluded package (any matching interface or superclass).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to