On 30/01/2020 21:38, Alex Pritchard wrote:
> Totally possible. I tried modifying \conf\context.xml, using both
> useRelativeRedirects="true" and "false":
> 
> <Context useRelativeRedirects="true">
>     <WatchedResource>WEB-INF/web.xml</WatchedResource>
> </Context>
> 
> I also tried making the same changes in our
> web-app/src/main/resources/meta-inf/context.xml in case that was overriding
> somehow.

That looks right to me. Odd. I thought I was on to something.

Can we go back to my request for a step-by-step description of what is
happening. I am particularly interested in the HTTP request/response
headers for the requests between the client and the server. Comparing a
set from a working version to a non-working version should be helpful.

Mark


> 
> Alex
> 
> 
> On Thu, Jan 30, 2020 at 3:07 PM Mark Thomas <ma...@apache.org> wrote:
> 
>> On 30/01/2020 19:53, Alex Pritchard wrote:
>>> Thanks for the response!
>>>
>>> I think you're right about identifying the wrong cause. I searched my
>>> way through the apache versions and isolated 7.0.79 as being the first
>>> version that breaks the redirect.
>>>
>>> I have tried setting useRelativeRedirects to both explicitly true and
>>> false, though it seemed to produce no effect on my outcome.
>>
>> How did you set it? It may be that the setting didn't take effect and
>> you got the default both times.
>>
>> Mark
>>
>>
>>
>>>
>>> If there's some other difference between 7.0.78 and 7.0.79 that I'm
>>> missing, maybe that would help pin down the problem. Nothing in the
>>> changelog jumped out at me and the only CVE listed for 7.0.79 was
>>> CVE-2017-7674 Cache Poisoning, which didn't seem related to my issue.
>>>
>>>
>>>
>>> I think you have identified the wrong change as the root cause of the
>>> problem. RequestUtil still normalizes, it just won't let you traverse
>>> outside of the webapp root. The URL above would be fine.
>>>
>>> It isn't clear to me exactly what is going on here. A step-by-step
>>> description of what happens may help us identitfy potential root causes.
>>>
>>> Given that the annotation uses location and that StrictHttpFirewall is
>>> part of Spring Security, I'm wondering if a redirect is involved. If so,
>>> maybe something to do with useRelativeRedirects on the Context
>>> (introduced in 7.0.67)?
>>>
>>> Mark
>>>
>>>
>>> On Thu, Jan 30, 2020 at 12:41 PM Alex Pritchard <
>> pritchard.a...@gmail.com>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> Trying to drag a legacy app forward and running into a breaking change
>>>> based on the fact that we're using struts2 to serve some JSPs from a
>>>> directory outside our context root by taking advantage of the
>> now-patched
>>>> directory traversal exploit.
>>>>
>>>> Essentially the action class is returning
>>>> @Result(location="../../foo.jsp"). Previously this would be flattened
>>>> from appName/web-inf/content/../../foo.jsp into appName/foo.jsp (I
>> think by
>>>> RequestUtil ?) but now it is not, so the StrictHttpFirewall isNormalized
>>>> check fails.
>>>>
>>>> My question is if there's any way to configure our installation in some
>>>> way to either identify the alternate directory as a root for these other
>>>> jsps (while still functioning for the jsps that are correctly in
>>>> web-inf/content) or to allow a specific directory traversal in some
>>>> context.
>>>>
>>>> Appreciate any input!
>>>>
>>>> Alex
>>>>
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
>> For additional commands, e-mail: users-h...@tomcat.apache.org
>>
>>
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to