CVE-2018-10237
Unbounded Memory Allocation vulnerability in guava (Maven)

Unbounded Memory Allocation No known exploit

What is CVE-2018-10237 About?

This vulnerability involves unbounded memory allocation in Google Guava, affecting versions 11.0 through 24.x before 24.1.1. It can lead to Denial of Service attacks on servers that deserialize attacker-provided data by forcing excessive memory usage. Exploitation is dependent on the server deserializing untrusted input.

Affected Software

  • com.google.guava:guava
    • >11.0, <24.1.1-android
  • com.google.guava:guava-jdk5
    • <=17.0
  • com.googlecode.guava-osgi:guava-osgi
    • <=11.0.1
  • de.mhus.ports:vaadin-shared-deps
    • <=7.4.0
  • org.hudsonci.lib.guava:guava
    • <=14.0.1-h-3

Technical Details

The vulnerability exists in Google Guava versions 11.0 through 24.x prior to 24.1.1. Specifically, when AtomicDoubleArray objects are deserialized using Java serialization or CompoundOrdering objects are deserialized using GWT serialization, the library performs eager memory allocation without adequate checks on the size of the incoming data or its reasonableness. An attacker can craft malicious serialized data that, upon deserialization by a server utilizing a vulnerable Guava version, triggers the allocation of excessively large memory structures. This unbounded memory allocation quickly exhausts the server's available memory, leading to a Denial of Service condition by causing the application to crash or become unresponsive.

What is the Impact of CVE-2018-10237?

Successful exploitation may allow attackers to disrupt the availability of the affected system or application, causing it to become unresponsive or crash.

What is the Exploitability of CVE-2018-10237?

Exploitation of this vulnerability is of moderate complexity, requiring an understanding of Java or GWT serialization formats and the specific structures that trigger unbounded allocation. It primarily affects servers that deserialize untrusted, attacker-provided data, suggesting remote exploitation is possible if such an endpoint is exposed. Authentication requirements depend on whether the deserialization endpoint is protected. Prerequisites include identifying applications that use vulnerable Guava versions and deserialize external data. The risk factors that increase exploitation likelihood include applications exposing unauthenticated deserialization endpoints or those that process untrusted serialized data without validation.

What are the Known Public Exploits?

PoC Author Link Commentary
No known exploits

What are the Available Fixes for CVE-2018-10237?

Available Upgrade Options

  • com.google.guava:guava
    • >11.0, <24.1.1-android → Upgrade to 24.1.1-android

Struggling with dependency upgrades?

See how Resolved Security's drop-in replacements make it simple.

Book a demo

Additional Resources

What are Similar Vulnerabilities to CVE-2018-10237?

Similar Vulnerabilities: CVE-2020-11005 , CVE-2019-20444 , CVE-2017-1000487 , CVE-2017-6428 , CVE-2016-4977