Martin

i did post to the dev-mailing list of Tomcat. This is not really a well read list...

Maybe you should send one to the user-list, which is the offical disccusion list. I will gladly assist and comment. If I do repost to user-list after not being successful in dev-list it would have a "smell".

Please be aware that the current change in behaviour between 8.0.38 and 8.0.39 is related to a security fix:

https://tomcat.apache.org/security-8.html#Fixed_in_Apache_Tomcat_8.0.39

The question then is: is rejecting the character '|' in a query part for a request target the appropriate measure to take against it?

The choices to be rejected seem to be quite random:

// Combination of multiple rules from RFC7230 and RFC 3986. Must be
// ASCII, no controls plus a few additional characters excluded

http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/http/parser/HttpParser.java?view=markup&pathrev=1767653

The general pupose of this parser is described as follows:

"The purpose of this parser is to let the parser worry about the edge cases. It provides tolerant (where safe to do so) parsing of HTTP header values assuming that wrapped header lines have already been unwrapped. (The Tomcat header processing code does the unwrapping.)"

Best regards
Markus

You may also reach me off-list, since we are on the struts-list here: [email protected]

Am 05.12.2016 um 14:09 schrieb Martin Gainty:
perhaps we're dealing with a powerful personality that just won 30 of the 
states in the US


would suggest send a pretty please with sugar on top bug request to tomcat jira 
and post to tomcat users


https://bz.apache.org/bugzilla/enter_bug.cgi


if he unilaterally rejects this obvious bug without consulting his fellow tomcat committee members we'll need 
to talk to the "rebel alliance" who has forked what they label as "commercial 
tomcat"..the rebels tout their fork as "hardened tomcat that works for corporations as well as the 
academic community"


please pingback when you have an answer (or lack of same)


*gruss*

Martin
______________________________________________



________________________________
From: [email protected] <[email protected]>
Sent: Monday, December 5, 2016 3:33 AM
To: Struts Developers List
Subject: Re: Valid characters in http requets: Tomcat 8.38 -> 8.39

Dear Martin

I fear Tomcat will not fix the issue. Mark Thomas states:

"If a request contains and unencoded '|' in the request-target, the
correct way to deal with it is to return a 400."

While this may be true, and when ever you are able to fix the requests
made to Tomcat, you should do it. However, if you are in a situation
like me, where this is not feasible, I see two options:

1. try to post again to the user-list in Tomcat, to raise awareness of
the issue

2. patch Tomcat

While I do not like to do this, patching Tomcat is very easy:

svn checkout http://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk/
asf - Revision 1769242: 
/tomcat/tc8.0.x/trunk<http://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk/>
svn.apache.org
asf - Revision 1769242: /tomcat/tc8.0.x/trunk...gitignore; BUILDING.txt; KEYS; 
LICENSE; MERGE.txt; NOTICE; RELEASE-NOTES; RUNNING.txt; TOMCAT-NEXT.txt; bin/ 
build ...




Take a look at

java/org/apache/tomcat/util/http/parser/HttpParser.java

cd {tomcat}/trunk/
ant

and you'll find the result in {tomcat}/trunk/output/build/
Markus


Dear Martin

I fear Tomcat will not fix the issue. Mark Thomas states:

"If a request contains and unencoded '|' in the request-target, the
correct way to deal with it is to return a 400."

While this may be true, and when ever you are able to fix the requests
made to Tomcat, you should do it. However, if you are in a situation
like me, where this is not feasible, I see two options:

  * try to post again to the user-list in Tomcat, to raise awareness of
    the issue
  * patch Tomcat

While I do not like to do this, patching Tomcat is very easy:

svn checkout http://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk/
asf - Revision 1769242: 
/tomcat/tc8.0.x/trunk<http://svn.apache.org/repos/asf/tomcat/tc8.0.x/trunk/>
svn.apache.org
asf - Revision 1769242: /tomcat/tc8.0.x/trunk...gitignore; BUILDING.txt; KEYS; 
LICENSE; MERGE.txt; NOTICE; RELEASE-NOTES; RUNNING.txt; TOMCAT-NEXT.txt; bin/ 
build ...




Take a look at

java/org/apache/tomcat/util/http/parser/HttpParser.java

cd {tomcat}/trunk/
ant

and you'll find the result in {tomcat}/trunk/output/build/

Markus

Am 04.12.2016 um 02:30 schrieb Martin Gainty:
Markus

I have same problem and had to revert TC 8.38 ..please pingback when tomcat 
fixed this problem


*gruss*

Martin
____________



________________________________
From: [email protected] <[email protected]>
Sent: Saturday, December 3, 2016 8:18 AM
To: Struts Developers List
Subject: Re: Valid characters in http requets: Tomcat 8.38 -> 8.39

Sorry! Wrong mailing list...

Markus

Am 03.12.2016 um 13:56 schrieb Lukasz Lenart:
Is it related to Apache Struts?


Cheers
Lukasz

2016-12-03 12:47 GMT+01:00 [email protected] <[email protected]>:
Between Tomcat 8.38 und 8.39 there seems to be a change in handling URL
parameters:

&paramxy=1|2

This will cause Tomcat to return a 400 error since 8.39. It is the character
"|" that causes the new behaviour. I suspect these changes:

https://github.com/apache/tomcat/commit/516bda676ac8d0284da3e0295a7df70391315360
[https://avatars3.githubusercontent.com/u/4690029?v=3&s=200]<https://github.com/apache/tomcat/commit/516bda676ac8d0284da3e0295a7df70391315360>

Add additional checks for valid characters to the HTTP request line · 
apache/tomcat@516bda6<https://github.com/apache/tomcat/commit/516bda676ac8d0284da3e0295a7df70391315360>
github.com
parsing so invalid request lines are rejected sooner. git-svn-id: 
https://svn.apache.org/repos/asf/tomcat/trunk@1767641 
13f79535-47bb-0310-9956-ffa450edef68



[https://avatars3.githubusercontent.com/u/4690029?v=3&s=200]<https://github.com/apache/tomcat/commit/516bda676ac8d0284da3e0295a7df70391315360>

Add additional checks for valid characters to the HTTP request line · 
apache/tomcat@516bda6<https://github.com/apache/tomcat/commit/516bda676ac8d0284da3e0295a7df70391315360>
github.com
parsing so invalid request lines are rejected sooner. git-svn-id: 
https://svn.apache.org/repos/asf/tomcat/trunk@1767641 
13f79535-47bb-0310-9956-ffa450edef68



First thing to know:

Is this intended?

Second:

Anyway to restore the previous behaviour of 8.38 with a config option.

Thanks for considering!

Best regards
Markus





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to