CVE-2023-30861 Vulnerability Analysis & Exploit Details

CVE-2023-30861
Vulnerability Scoring

7.5
/10
Very High Risk

Highly exploitable, CVE-2023-30861 poses a critical security risk that could lead to severe breaches.

Attack Complexity Details

  • Attack Complexity: Low
    Exploits can be performed without significant complexity or special conditions.
  • Attack Vector: Network
    Vulnerability is exploitable over a network without physical access.
  • Privileges Required: None
    No privileges are required for exploitation.
  • Scope: Unchanged
    Exploit remains within the originally vulnerable component.
  • User Interaction: None
    No user interaction is necessary for exploitation.

CVE-2023-30861 Details

Status: Modified

Last updated: 🕗 21 Nov 2024, 08:00 UTC
Originally published on: 🕕 02 May 2023, 18:15 UTC

Time between publication and last update: 568 days

CVSS Release: version 3

CVSS3 Source

security-advisories@github.com

CVSS3 Type

Secondary

CVSS3 Vector

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

CVE-2023-30861 Vulnerability Summary

CVE-2023-30861: 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. 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` 3. The application does not access or modify the session at any point during a request. 4. `SESSION_REFRESH_EACH_REQUEST` 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. This issue has been fixed in versions 2.3.2 and 2.2.5.

Assessing the Risk of CVE-2023-30861

Access Complexity Graph

The exploitability of CVE-2023-30861 depends on two key factors: attack complexity (the level of effort required to execute an exploit) and privileges required (the access level an attacker needs).

Exploitability Analysis for CVE-2023-30861

With low attack complexity and no required privileges, CVE-2023-30861 is an easy target for cybercriminals. Organizations should prioritize immediate mitigation measures to prevent unauthorized access and data breaches.

Understanding AC and PR

A lower complexity and fewer privilege requirements make exploitation easier. Security teams should evaluate these aspects to determine the urgency of mitigation strategies, such as patch management and access control policies.

Attack Complexity (AC) measures the difficulty in executing an exploit. A high AC means that specific conditions must be met, making an attack more challenging, while a low AC means the vulnerability can be exploited with minimal effort.

Privileges Required (PR) determine the level of system access necessary for an attack. Vulnerabilities requiring no privileges are more accessible to attackers, whereas high privilege requirements limit exploitation to authorized users with elevated access.

CVSS Score Breakdown Chart

Above is the CVSS Sub-score Breakdown for CVE-2023-30861, illustrating how Base, Impact, and Exploitability factors combine to form the overall severity rating. A higher sub-score typically indicates a more severe or easier-to-exploit vulnerability.

CIA Impact Analysis

Below is the Impact Analysis for CVE-2023-30861, showing how Confidentiality, Integrity, and Availability might be affected if the vulnerability is exploited. Higher values usually signal greater potential damage.

  • Confidentiality: High
    Exploiting CVE-2023-30861 can result in unauthorized access to sensitive data, severely compromising data privacy.
  • Integrity: None
    CVE-2023-30861 poses no threat to data integrity.
  • Availability: None
    CVE-2023-30861 does not impact system availability.

Exploit Prediction Scoring System (EPSS)

The EPSS score estimates the probability that this vulnerability will be exploited in the near future.

EPSS Score: 0.228% (probability of exploit)

EPSS Percentile: 61.41% (lower percentile = lower relative risk)
This vulnerability is less risky than approximately 38.59% of others.

CVE-2023-30861 References

External References

CWE Common Weakness Enumeration

CWE-539

CAPEC Common Attack Pattern Enumeration and Classification

  • Exploitation of Trusted Identifiers CAPEC-21 An adversary guesses, obtains, or "rides" a trusted identifier (e.g. session ID, resource ID, cookie, etc.) to perform authorized actions under the guise of an authenticated user or service.
  • Accessing/Intercepting/Modifying HTTP Cookies CAPEC-31 This attack relies on the use of HTTP Cookies to store credentials, state information and other critical data on client systems. There are several different forms of this attack. The first form of this attack involves accessing HTTP Cookies to mine for potentially sensitive data contained therein. The second form involves intercepting this data as it is transmitted from client to server. This intercepted information is then used by the adversary to impersonate the remote user/session. The third form is when the cookie's content is modified by the adversary before it is sent back to the server. Here the adversary seeks to convince the target server to operate on this falsified information.
  • Manipulating Opaque Client-based Data Tokens CAPEC-39 In circumstances where an application holds important data client-side in tokens (cookies, URLs, data files, and so forth) that data can be manipulated. If client or server-side application components reinterpret that data as authentication tokens or data (such as store item pricing or wallet information) then even opaquely manipulating that data may bear fruit for an Attacker. In this pattern an attacker undermines the assumption that client side tokens have been adequately protected from tampering through use of encryption or obfuscation.
  • Session Credential Falsification through Prediction CAPEC-59 This attack targets predictable session ID in order to gain privileges. The attacker can predict the session ID used during a transaction to perform spoofing and session hijacking.
  • Reusing Session IDs (aka Session Replay) CAPEC-60 This attack targets the reuse of valid session ID to spoof the target system in order to gain privileges. The attacker tries to reuse a stolen session ID used previously during a transaction to perform spoofing and session hijacking. Another name for this type of attack is Session Replay.

Vulnerable Configurations

  • cpe:2.3:a:palletsprojects:flask:0.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.3.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.3.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.4:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.4:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.5:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.5:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.5.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.5.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.5.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.5.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.6:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.6:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.6.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.6.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.7:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.7:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.7.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.7.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.7.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.7.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.8:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.8:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.8.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.8.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.9:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.9:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.10:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.10:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.10.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.10.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.11:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.11:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.11.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.11.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.12:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.12:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.12.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.12.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.12.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.12.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.12.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.12.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:0.12.4:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:0.12.4:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.0:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.0.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.0.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.0.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.0.4:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.0.4:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.1.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.1.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:1.1.4:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:1.1.4:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.0:-:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.0:-:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.0:rc1:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.0:rc1:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.0:rc2:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.0:rc2:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.0.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.0.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.1.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.1.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.2.0:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.2.0:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.2.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.2.1:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.2.2:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.2.2:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.2.3:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.2.3:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.2.4:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.2.4:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.3.0:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.3.0:*:*:*:*:*:*:*
  • cpe:2.3:a:palletsprojects:flask:2.3.1:*:*:*:*:*:*:*
    cpe:2.3:a:palletsprojects:flask:2.3.1:*:*:*:*:*:*:*

Protect Your Infrastructure against CVE-2023-30861: Combat Critical CVE Threats

Stay updated with real-time CVE vulnerabilities and take action to secure your systems. Enhance your cybersecurity posture with the latest threat intelligence and mitigation techniques. Develop the skills necessary to defend against CVEs and secure critical infrastructures. Join the top cybersecurity professionals safeguarding today's infrastructures.

Other 5 Recently Published CVEs Vulnerabilities

  • CVE-2025-26205 – Lua 5.4.7, when the debug library is used, has a out-of-bounds read and segmentation violation in mainpositionTV in ltable.c. NOTE: this is dispute...
  • CVE-2025-26204 – Lua 5.4.7, when the debug library is used, has a out-of-bounds read and segmentation violation in equalkey in ltable.c. NOTE: this is disputed beca...
  • CVE-2025-2129 – A vulnerability was found in Mage AI 0.9.75. It has been classified as problematic. This affects an unknown part. The manipulation leads to insecur...
  • CVE-2025-2127 – A vulnerability was found in JoomlaUX JUX Real Estate 3.4.0 on Joomla. It has been classified as problematic. Affected is an unknown function of th...
  • CVE-2025-2126 – A vulnerability was found in JoomlaUX JUX Real Estate 3.4.0 on Joomla and classified as critical. This issue affects some unknown processing of the...