# CVE-2018-10237: Denial of Service in Google Guava

> Remote attackers can cause denial of service in servers using Google Guava by sending crafted serialized data that triggers unbounded memory allocation.

- **Severity:** Medium 5.9 (`CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 26 Apr 2018
- **Updated:** 5 Aug 2024
- **Also known as:** CLEANSTART-2026-KO74004, CLEANSTART-2026-NG64377, CLEANSTART-2026-UY59113, CLSA-2026-1790083976, DEBIAN-CVE-2018-10237, ECHO-7c67-94ef-c530, GHSA-mvr2-9pj6-7w5j, MINI-j868-gr77-fcmw, MINI-mgq4-x983-74v2, RHSA-2018:2598, ROOT-APP-MAVEN-CVE-2018-10237, UBUNTU-CVE-2018-10237

## What is CVE-2018-10237?

CVE-2018-10237 is a medium-severity denial of service vulnerability in Oracle Database Server, published on 26 Apr 2018. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

Unbounded memory allocation in Google Guava 11.0 through 24.x before 24.1.1 allows remote attackers to conduct denial of service attacks against servers that depend on this library and deserialize attacker-provided data, because the AtomicDoubleArray class (when serialized with Java serialization) and the CompoundOrdering class (when serialized with GWT serialization) perform eager allocation without appropriate checks on what a client has sent and whether the data size is reasonable.

Weakness: CWE-770 (Allocation of Resources Without Limits or Throttling)

## Which versions are affected by CVE-2018-10237?

12 open source packages ship an affected version, including com.google.guava:guava, com.google.guava:guava-jdk5 and com.googlecode.guava-osgi:guava-osgi. It affects 17 products.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `com.google.guava:guava` | Maven | From 11.0 | 24.1.1-android |
| `com.google.guava:guava` | Maven | From 11.0 | 24.1.1-android |
| `com.google.guava:guava-jdk5` | Maven | All versions to 17.0 | None |
| `com.google.guava:guava-jdk5` | Maven | All versions to 17.0 | None |
| `com.googlecode.guava-osgi:guava-osgi` | Maven | All versions to 11.0.1 | None |
| `com.googlecode.guava-osgi:guava-osgi` | Maven | All versions to 11.0.1 | None |
| `de.mhus.ports:vaadin-shared-deps` | Maven | All versions to 7.4.0 | None |
| `de.mhus.ports:vaadin-shared-deps` | Maven | All versions to 7.4.0 | None |
| `org.hudsonci.lib.guava:guava` | Maven | All versions to 14.0.1-h-3 | None |
| `org.hudsonci.lib.guava:guava` | Maven | All versions to 14.0.1-h-3 | None |
| `org.sonatype.sisu:sisu-guava` | Maven | All versions | None |
| `org.sonatype.sisu:sisu-guava` | Maven | All versions | None |
| `opendaylight` | Red Hat:openstack:13::el7 | All versions | 0:8.3.0-3.el7ost |

Products: Google Guava, Oracle Banking Payments, Oracle Communications Ip Service Activator, Oracle Customer Management and Segmentation Foundation, Oracle Database Server, Oracle Flexcube Investor Servicing, Oracle Flexcube Private Banking, Oracle Retail Integration Bus, Oracle Retail Xstore Point of Service, Oracle Weblogic Server, Redhat Jboss Enterprise Application Platform, Redhat Openshift Container Platform, Redhat Openstack, Redhat Satellite, Redhat Satellite Capsule, Redhat Virtualization, Redhat Virtualization Host.

## How do I fix CVE-2018-10237?

Upgrade com.google.guava:guava to 24.1.1-android or later.

## Is CVE-2018-10237 being exploited?

There is no known exploitation of CVE-2018-10237 in the wild and no public exploit code.

## Other vulnerabilities in Oracle Database Server

- [CVE-2023-2976](https://insights.sbomify.com/CVE-2023-2976/): Use of temporary directory for file creation in `FileBackedOutputStream` in Guava (medium 5.5)
- [CVE-2020-8908](https://insights.sbomify.com/CVE-2020-8908/): Temp directory permission issue in Guava (low 3.3)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2018-10237 and fix it if it is affected.

What it is: CVE-2018-10237 is a medium-severity denial of service vulnerability in Oracle Database Server, published on 26 Apr 2018. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2018-10237 in the wild and no public exploit code.

Affected packages and fixed versions:
- com.google.guava:guava (Maven): affected from 11.0; fixed in 24.1.1-android
- com.google.guava:guava (Maven): affected from 11.0; fixed in 24.1.1-android
- com.google.guava:guava-jdk5 (Maven): affected all versions up to 17.0; no fix listed
- com.google.guava:guava-jdk5 (Maven): affected all versions up to 17.0; no fix listed
- com.googlecode.guava-osgi:guava-osgi (Maven): affected all versions up to 11.0.1; no fix listed
- com.googlecode.guava-osgi:guava-osgi (Maven): affected all versions up to 11.0.1; no fix listed
- de.mhus.ports:vaadin-shared-deps (Maven): affected all versions up to 7.4.0; no fix listed
- de.mhus.ports:vaadin-shared-deps (Maven): affected all versions up to 7.4.0; no fix listed
- org.hudsonci.lib.guava:guava (Maven): affected all versions up to 14.0.1-h-3; no fix listed
- org.hudsonci.lib.guava:guava (Maven): affected all versions up to 14.0.1-h-3; no fix listed
- org.sonatype.sisu:sisu-guava (Maven): affected all versions; no fix listed
- org.sonatype.sisu:sisu-guava (Maven): affected all versions; no fix listed

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2018-10237/ (Markdown: https://insights.sbomify.com/CVE-2018-10237/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2018-10237
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2018-10237
- OSV: https://osv.dev/vulnerability/CVE-2018-10237

---
From sbomify Insights: https://insights.sbomify.com/CVE-2018-10237/
Summaries are generated and may contain mistakes; the official description above is the record.
