Nonstandard cookie parsing in Jetty may allow an attacker to smuggle cookies within other cookies, or otherwise perform unintended behavior by tampering with the cookie parsing mechanism.
If Jetty sees a cookie VALUE that starts with "
(double quote), it will continue to read the cookie string until it sees a closing quote -- even if a semicolon is encountered.
So, a cookie header such as:
DISPLAY_LANGUAGE="b; JSESSIONID=1337; c=d"
will be parsed as one cookie, with the name DISPLAY_LANGUAGE
and a value of b; JSESSIONID=1337; c=d
instead of 3 separate cookies.
This has security implications because if, say, JSESSIONID
is an HttpOnly
cookie, and the DISPLAY_LANGUAGE
cookie value is rendered on the page, an attacker can smuggle the JSESSIONID
cookie into the DISPLAY_LANGUAGE
cookie and thereby exfiltrate it. This is significant when an intermediary is enacting some policy based on cookies, so a smuggled cookie can bypass that policy yet still be seen by the Jetty server.
No workarounds