When using Tomcat 8.5.15 with HTTP/2 all URL path parameters gets lost. In some cases, session tracking is done via URL (yes, I know, doing that is bad ;)). Using the HTTP/2 protocol, the URL contains the "jsessionid" parameter, but Tomcat creates a new session. It seems, the session ID never reaches the session manager. I configured a connector using NIO2 in combination with Http2Protocol: <Connector port="8444" protocol="org.apache.coyote.http11.Http11Nio2Protocol" sslImplementationName="org.apache.tomcat.util.net.openssl.OpenSSLImplementation" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" [...]> <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> </Connector> Using the same connector without <UpgradeProtocol> everything is okay.
Thanks for the report. This has been fixed in: - 9.0.x for 9.0.0.M22 - 8.5.x for 8.5.16
This is CVE-2017-7675.