Gouri Sankar A created WW-5841:
----------------------------------

             Summary: Struts Boot accepts a session id via URL ;jsessionid= 
with no cookie and no SameSite
                 Key: WW-5841
                 URL: https://issues.apache.org/jira/browse/WW-5841
             Project: Struts 2
          Issue Type: Improvement
          Components: Core
            Reporter: Gouri Sankar A


Without a web.xml, the embedded Tomcat context StrutsBootServer starts 
defaulted to the servlet-spec COOKIE+URL session tracking modes, so a session 
id supplied only via ";jsessionid=" in the URL (no cookie at all) was accepted 
and kept alive with no fresh Set-Cookie -- a session-fixation vector.

Live-reproduced before this fix: a session established by cookie was resumed by 
replaying the id via the URL parameter with no Cookie header sent at all.

Fix restricts session tracking to COOKIE only, and the session cookie now 
carries SameSite=Lax (previously unset). Secure is deliberately not forced: 
Boot opens a plain HTTP listener by default, and an operator terminating TLS in 
front of it sets Secure themselves, as with any other servlet container.

Boot is part of 7.5.0 (unreleased, no production deployments yet), so this 
lands before anyone is exposed to it.

Tests: StrutsBootTomcatTest gains testSessionCookieHasSameSiteLax and a 
URL-supplied-session-id-is-not-honoured test, with a 
cookie-based-session-still-works control. Full boot suite: 52/0 failures.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to