{"ecosystem":"pypi","package":"flask","version":null,"bugs":[{"id":816,"ecosystem":"pypi","package_name":"flask","affected_version":"2.3.0","fixed_version":"2.3.2","bug_id":"osv:GHSA-m2qf-hxjv-5gpq","title":"Flask vulnerable to possible disclosure of permanent session cookie due to missing Vary: Cookie header","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.\n\n1. The application must be hosted behind a caching proxy that does not strip cookies or ignore responses with cookies.\n2. The application sets [`session.permanent = True`](https://flask.palletsprojects.com/en/2.3.x/api/#flask.session.permanent).\n2. The application does not access or modify the session at any point during a request.\n4. [`SESSION_REFRESH_EACH_REQUEST`](https://flask.palletsprojects.com/en/2.3.x/config/#SESSION_REFRESH_EACH_REQUEST) is enabled (the default).\n5. The application does not set a `Cache-Control` header to indicate that a page is private or should not be cached.\n\nThis 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.","severity":"high","status":"fixed","source":"osv","source_url":"https://github.com/pallets/flask/security/advisories/GHSA-m2qf-hxjv-5gpq","labels":["CVE-2023-30861","PYSEC-2023-62"],"created_at":"2026-04-19T04:31:53.488091+00:00","updated_at":"2026-04-19T04:31:53.488091+00:00"},{"id":814,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"1.0","bug_id":"osv:GHSA-5wv5-4vpf-pj6m","title":"Pallets Project Flask is vulnerable to Denial of Service via Unexpected memory usage","description":"The Pallets Project Flask before 1.0 is affected by unexpected memory usage. The impact is denial of service. The attack vector is crafted encoded JSON data. The fixed version is 1. NOTE this may overlap CVE-2018-1000656.","severity":"high","status":"fixed","source":"osv","source_url":"https://nvd.nist.gov/vuln/detail/CVE-2019-1010083","labels":["CVE-2019-1010083","PYSEC-2019-179"],"created_at":"2026-04-19T04:31:53.487101+00:00","updated_at":"2026-04-19T04:31:53.487101+00:00"},{"id":813,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"0.12.3","bug_id":"osv:GHSA-562c-5r94-xh97","title":"Flask is vulnerable to Denial of Service via incorrect encoding of JSON data","description":"The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3.","severity":"high","status":"fixed","source":"osv","source_url":"https://nvd.nist.gov/vuln/detail/CVE-2018-1000656","labels":["CVE-2018-1000656","PYSEC-2018-66"],"created_at":"2026-04-19T04:31:53.486571+00:00","updated_at":"2026-04-19T04:31:53.486571+00:00"},{"id":819,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"afd63b16170b7c047f5758eb910c416511e9c965","bug_id":"osv:PYSEC-2023-62","title":"PYSEC-2023-62: advisory","description":"Flask is a lightweight WSGI web application framework. When all of the following conditions are met, a response containing data intended for one client may be cached and subsequently sent by the 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.\n\n1. The application must be hosted behind a caching proxy that does not strip cookies or ignore responses with cookies.\n2. The application sets `session.permanent = True`\n3. The application does not access or modify the session at any point during a request.\n4. `SESSION_REFRESH_EACH_REQUEST` enabled (the default).\n5. The application does not set a `Cache-Control` header to indicate that a page is private or should not be cached.\n\nThis 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. This issue has been fixed in versions 2.3.2 and 2.2.5.","severity":"medium","status":"fixed","source":"osv","source_url":"https://github.com/pallets/flask/commit/70f906c51ce49c485f1d355703e9cc3386b1cc2b","labels":["CVE-2023-30861","GHSA-m2qf-hxjv-5gpq"],"created_at":"2026-04-19T04:31:53.489418+00:00","updated_at":"2026-04-19T04:31:53.489418+00:00"},{"id":818,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"1.0","bug_id":"osv:PYSEC-2019-179","title":"PYSEC-2019-179: advisory","description":"The Pallets Project Flask before 1.0 is affected by: unexpected memory usage. The impact is: denial of service. The attack vector is: crafted encoded JSON data. The fixed version is: 1. NOTE: this may overlap CVE-2018-1000656.","severity":"medium","status":"fixed","source":"osv","source_url":"https://www.palletsprojects.com/blog/flask-1-0-released/","labels":["CVE-2019-1010083","GHSA-5wv5-4vpf-pj6m"],"created_at":"2026-04-19T04:31:53.488995+00:00","updated_at":"2026-04-19T04:31:53.488995+00:00"},{"id":817,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"0.12.3","bug_id":"osv:PYSEC-2018-66","title":"PYSEC-2018-66: advisory","description":"The Pallets Project flask version Before 0.12.3 contains a CWE-20: Improper Input Validation vulnerability in flask that can result in Large amount of memory usage possibly leading to denial of service. This attack appear to be exploitable via Attacker provides JSON data in incorrect encoding. This vulnerability appears to have been fixed in 0.12.3. NOTE: this may overlap CVE-2019-1010083.","severity":"medium","status":"fixed","source":"osv","source_url":"https://github.com/pallets/flask/releases/tag/0.12.3","labels":["CVE-2018-1000656","GHSA-562c-5r94-xh97"],"created_at":"2026-04-19T04:31:53.488542+00:00","updated_at":"2026-04-19T04:31:53.488542+00:00"},{"id":815,"ecosystem":"pypi","package_name":"flask","affected_version":null,"fixed_version":"3.1.3","bug_id":"osv:GHSA-68rp-wp8r-4726","title":"Flask session does not add `Vary: Cookie` header when accessed in some ways","description":"When the `session` object is accessed, Flask should set the `Vary: Cookie` header. This instructs caches not to cache the response, as it may contain information specific to a logged in user. This is handled in most cases, but some forms of access such as the Python `in` operator were overlooked.\n\nThe severity depends on the application's use of the session, and the cache's behavior regarding cookies. The risk depends on all these conditions being met.\n\n1. The application must be hosted behind a caching proxy that does not ignore responses with cookies.\n2. The application does not set a `Cache-Control` header to indicate that a page is private or should not be cached.\n3. The application accesses the session in a way that does not access the values, only the keys, and does not mutate the session.","severity":"low","status":"fixed","source":"osv","source_url":"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726","labels":["CVE-2026-27205"],"created_at":"2026-04-19T04:31:53.487602+00:00","updated_at":"2026-04-19T04:31:53.487602+00:00"},{"id":812,"ecosystem":"pypi","package_name":"flask","affected_version":"3.1.0","fixed_version":"3.1.1","bug_id":"osv:GHSA-4grg-w6v8-c28g","title":"Flask uses fallback key instead of current signing key","description":"In Flask 3.1.0, the way fallback key configuration was handled resulted in the last fallback key being used for signing, rather than the current signing key.\n\nSigning is provided by the `itsdangerous` library. A list of keys can be passed, and it expects the last (top) key in the list to be the most recent key, and uses that for signing. Flask was incorrectly constructing that list in reverse, passing the signing key first.\n\nSites that have opted-in to use key rotation by setting `SECRET_KEY_FALLBACKS` are likely to unexpectedly be signing their sessions with stale keys, and their transition to fresher keys will be impeded. Sessions are still signed, so this would not cause any sort of data integrity loss.","severity":"low","status":"fixed","source":"osv","source_url":"https://github.com/pallets/flask/security/advisories/GHSA-4grg-w6v8-c28g","labels":["CVE-2025-47278"],"created_at":"2026-04-19T04:31:53.485566+00:00","updated_at":"2026-04-19T04:31:53.485566+00:00"}],"total":8,"_cache":"miss"}