CVE-2023-34454 Vulnerability Analysis & Exploit Details

CVE-2023-34454
Vulnerability Scoring

5.9
/10
Significant Risk

Security assessments indicate that CVE-2023-34454 presents a notable risk, potentially requiring prompt mitigation.

Attack Complexity Details

  • Attack Complexity: High
    Exploits require significant effort and 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-34454 Details

Status: Modified

Last updated: 🕔 12 Dec 2024, 17:15 UTC
Originally published on: 🕔 15 Jun 2023, 17:15 UTC

Time between publication and last update: 545 days

CVSS Release: version 3

CVSS3 Source

security-advisories@github.com

CVSS3 Type

Secondary

CVSS3 Vector

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

CVE-2023-34454 Vulnerability Summary

CVE-2023-34454: snappy-java is a fast compressor/decompressor for Java. Due to unchecked multiplications, an integer overflow may occur in versions prior to 1.1.10.1, causing an unrecoverable fatal error. The function `compress(char[] input)` in the file `Snappy.java` receives an array of characters and compresses it. It does so by multiplying the length by 2 and passing it to the rawCompress` function. Since the length is not tested, the multiplication by two can cause an integer overflow and become negative. The rawCompress function then uses the received length and passes it to the natively compiled maxCompressedLength function, using the returned value to allocate a byte array. Since the maxCompressedLength function treats the length as an unsigned integer, it doesn’t care that it is negative, and it returns a valid value, which is casted to a signed integer by the Java engine. If the result is negative, a `java.lang.NegativeArraySizeException` exception will be raised while trying to allocate the array `buf`. On the other side, if the result is positive, the `buf` array will successfully be allocated, but its size might be too small to use for the compression, causing a fatal Access Violation error. The same issue exists also when using the `compress` functions that receive double, float, int, long and short, each using a different multiplier that may cause the same issue. The issue most likely won’t occur when using a byte array, since creating a byte array of size 0x80000000 (or any other negative value) is impossible in the first place. Version 1.1.10.1 contains a patch for this issue.

Assessing the Risk of CVE-2023-34454

Access Complexity Graph

The exploitability of CVE-2023-34454 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-34454

CVE-2023-34454 presents a challenge to exploit due to its high attack complexity, but the absence of privilege requirements still makes it a viable target for skilled attackers. A thorough security review is advised.

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-34454, 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-34454, showing how Confidentiality, Integrity, and Availability might be affected if the vulnerability is exploited. Higher values usually signal greater potential damage.

  • Confidentiality: None
    CVE-2023-34454 has no significant impact on data confidentiality.
  • Integrity: None
    CVE-2023-34454 poses no threat to data integrity.
  • Availability: High
    CVE-2023-34454 can disrupt system operations, potentially causing complete denial of service (DoS).

Exploit Prediction Scoring System (EPSS)

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

EPSS Score: 0.168% (probability of exploit)

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

CVE-2023-34454 References

External References

CWE Common Weakness Enumeration

CWE-190

CAPEC Common Attack Pattern Enumeration and Classification

  • Forced Integer Overflow CAPEC-92 This attack forces an integer variable to go out of range. The integer variable is often used as an offset such as size of memory allocation or similarly. The attacker would typically control the value of such variable and try to get it out of range. For instance the integer in question is incremented past the maximum possible value, it may wrap to become a very small, or negative number, therefore providing a very incorrect value which can lead to unexpected behavior. At worst the attacker can execute arbitrary code.

Vulnerable Configurations

  • cpe:2.3:a:xerial:snappy-java:1.0.1:rc1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.1:rc1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.1:rc2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.1:rc2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.1:rc3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.1:rc3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.1:rc4:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.1:rc4:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3:rc1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3:rc1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3:rc2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3:rc2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3:rc3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3:rc3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.3:rc4:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.3:rc4:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.4.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.4.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5:milestone2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5:milestone2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5:milestone3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5:milestone3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.0.5:milestone4:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.0.5:milestone4:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0:milestone1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0:milestone1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0:milestone2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0:milestone2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0:milestone3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0:milestone3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.0:milestone4:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.0:milestone4:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.5:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.5:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.6:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.6:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1.7:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1.7:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1:milestone1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1:milestone1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1:milestone2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1:milestone2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1:milestone3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1:milestone3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.1:milestone4:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.1:milestone4:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.5:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.5:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2.6:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2.6:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2:rc1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2:rc1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2:rc2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2:rc2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2:rc3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2:rc3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.2:milestone1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.2:milestone1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.3:milestone1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.3:milestone1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.3:milestone2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.3:milestone2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.4:-:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.4:-:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.4:milestone1:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.4:milestone1:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.4:milestone2:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.4:milestone2:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.4:milestone3:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.4:milestone3:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.5:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.5:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.6:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.6:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.7:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.7:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.7.8:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.7.8:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.8:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.8:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.8.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.8.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.8.2:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.8.2:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.8.3:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.8.3:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.8.4:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.8.4:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.9.0:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.9.0:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.9.1:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.9.1:*:*:*:*:*:*:*
  • cpe:2.3:a:xerial:snappy-java:1.1.10.0:*:*:*:*:*:*:*
    cpe:2.3:a:xerial:snappy-java:1.1.10.0:*:*:*:*:*:*:*

Protect Your Infrastructure against CVE-2023-34454: 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-2024-43107 – Improper Certificate Validation (CWE-295) in the Gallagher Milestone Integration Plugin (MIP) permits unauthenticated messages (e.g. alarm events) ...
  • CVE-2024-41724 – Improper Certificate Validation (CWE-295) in the Gallagher Command Centre SALTO integration allowed an attacker to spoof the SALTO server. Thi...
  • CVE-2025-2133 – A vulnerability classified as problematic was found in ftcms 2.1. Affected by this vulnerability is an unknown functionality of the file /admin/ind...
  • CVE-2025-2132 – A vulnerability classified as critical has been found in ftcms 2.1. Affected is an unknown function of the file /admin/index.php/web/ajax_all_lists...
  • CVE-2025-2131 – A vulnerability was found in dayrui XunRuiCMS up to 4.6.3. It has been rated as problematic. This issue affects some unknown processing of the comp...