GitHub Advisoryadvisory · PyPI

GHSA-m2qf-hxjv-5gpq Flask vulnerable to possible disclosure of permanent session cookie due to missing Vary: Cookie header

HIGH Published 2023-05-01 Modified 2024-09-20 Official page ↗
Aliases
CVE-2023-30861
Ecosystem
PyPI
Packages
Flask
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-539
Reviewed
2023-05-01

Affected packages

• PyPI Flask: >= 2.3.0, < 2.3.2 → fixed in 2.3.2 • PyPI Flask: < 2.2.5 → fixed in 2.2.5

Description

When all of the following conditions are met, a response containing data intended for one client may be cached and subsequently sent by a proxy to other clients. If the proxy also caches `Set-Cookie` headers, it may send one client's `session` cookie to other clients. The severity depends on the application's use of the session, and the proxy's behavior regarding cookies. The risk depends on _all_ these conditions being met. 1. The application must be hosted behind a caching proxy that does not strip cookies or ignore responses with cookies. 2. The application sets `session.permanent = True`. 2. The application does not access or modify the session at any point during a request. 4. `SESSION_REFRESH_EACH_REQUEST` is enabled (the default). 5. The application does not set a `Cache-Control` header to indicate that a page is private or should not be cached. This happens because vulnerable versions of Flask only set the `Vary: Cookie` header when the session is accessed or modified, not when it is refreshed (re-sent to update the expiration) without being accessed or modified.

Related

Alias · CVE (1)

  • CVE-2023-30861 Flask is a lightweight WSGI web application framework. vulnerability

Weakness · CWE (1)

  • CWE-539 Use of Persistent Cookies Containing Sensitive Information weakness

References