GitHub Advisoryadvisory · Maven

GHSA-m6cp-vxjx-65j6 SessionListener can prevent a session from being invalidated breaking logout

LOW Published 2021-06-23 Modified 2022-02-08 Official page ↗
Aliases
CVE-2021-34428
Ecosystem
Maven
Packages
org.eclipse.jetty:jetty-server
Severity
Low
CVSS vector
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Weaknesses
CWE-613
Reviewed
2021-06-22

Affected packages

• Maven org.eclipse.jetty:jetty-server: < 9.4.41 → fixed in 9.4.41 • Maven org.eclipse.jetty:jetty-server: >= 10.0.0, < 10.0.3 → fixed in 10.0.3 • Maven org.eclipse.jetty:jetty-server: >= 11.0.0, < 11.0.3 → fixed in 11.0.3

Description

Impact If an exception is thrown from the `SessionListener#sessionDestroyed()` method, then the session ID is not invalidated in the session ID manager. On deployments with clustered sessions and multiple contexts this can result in a session not being invalidated. This can result in an application used on a shared computer being left logged in. There is no known path for an attacker to induce such an exception to be thrown, thus they must rely on an application to throw such an exception. The OP has also identified that during the call to `sessionDestroyed`, the `getLastAccessedTime()` throws an `IllegalStateException`, which potentially contrary to the servlet spec, so applications calling this method may always throw and fail to log out. If such an application was only tested on a non clustered test environment, then it may be deployed on a clustered environment with multiple contexts and fail to log out. Workarounds The application should catch all Throwables within their `SessionListener#sessionDestroyed()` implementations.

Related

Weakness · not in database (1)

Alias · CVE (1)

  • CVE-2021-34428 For Eclipse Jetty versions <= 9.4.40, <= 10.0.2, <= 11.0.2, if an exception is thrown from the SessionListener#sessionDestroyed() method,… vulnerability

References