CVE-2026-102554: Guava: unbounded deserialization allocation causes DoS
GHSA-xxph-c9ww-hj94HIGHCISA: TRACK*Google Guava versions up to 33.7.1 allocate arrays based on an attacker-controlled size when deserializing CompactHashMap, CompactHashSet, or MapMakerInternalMap, so a crafted Java serialization stream can trigger an OutOfMemoryError and crash the process. Guava is a ubiquitous transitive dependency in Java-based AI/ML tooling (for example Spark, Hadoop, and Java inference or data pipeline components), so the potential blast radius is wide, although the vulnerable path is only reachable where an application deserializes untrusted Java objects. There is no CISA KEV listing, no public exploit, no Nuclei template, and no EPSS score yet, so exploitation is not currently observed and the impact is limited to availability. Upgrade to Guava 33.7.2, inventory Java services that deserialize untrusted data, and prefer eliminating native Java deserialization of external input altogether.
What is the risk?
Medium-to-high risk, driven by availability impact only. No CVSS vector, EPSS, or exploit data is available (Sources: NVD description, GitHub Advisory). Exploitation requires a service that accepts untrusted Java-serialized streams and that actually deserializes Guava compact collections, which narrows real-world exposure. Where reachable, exploitation is low-complexity because a small payload can force a large allocation. Confidence: MEDIUM, since the affected version range is only partly specified and the CVSS vector is missing.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Microsoft APM | maven | >= 4.0, <= 33.7.1 | 33.7.2 |
| Guava | — | — | No patch |
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade Guava to 33.7.2 or later, and check transitive dependencies with mvn dependency:tree or gradle dependencies, including shaded or fat JARs. 2) Use ObjectInputFilter (JEP 290) allow-lists to restrict deserializable classes and limit stream size and array length. 3) Do not deserialize untrusted Java objects; switch to safer formats such as JSON or Protobuf. 4) Set JVM heap limits and container memory limits, and enable restart policies so one crash does not cascade. 5) Monitor for OutOfMemoryError events, abnormal heap growth, and unexpected restarts in Java services, and alert on large inbound serialized payloads.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-102554?
Google Guava versions up to 33.7.1 allocate arrays based on an attacker-controlled size when deserializing CompactHashMap, CompactHashSet, or MapMakerInternalMap, so a crafted Java serialization stream can trigger an OutOfMemoryError and crash the process. Guava is a ubiquitous transitive dependency in Java-based AI/ML tooling (for example Spark, Hadoop, and Java inference or data pipeline components), so the potential blast radius is wide, although the vulnerable path is only reachable where an application deserializes untrusted Java objects. There is no CISA KEV listing, no public exploit, no Nuclei template, and no EPSS score yet, so exploitation is not currently observed and the impact is limited to availability. Upgrade to Guava 33.7.2, inventory Java services that deserialize untrusted data, and prefer eliminating native Java deserialization of external input altogether.
Is CVE-2026-102554 actively exploited?
No confirmed active exploitation of CVE-2026-102554 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-102554?
1) Upgrade Guava to 33.7.2 or later, and check transitive dependencies with mvn dependency:tree or gradle dependencies, including shaded or fat JARs. 2) Use ObjectInputFilter (JEP 290) allow-lists to restrict deserializable classes and limit stream size and array length. 3) Do not deserialize untrusted Java objects; switch to safer formats such as JSON or Protobuf. 4) Set JVM heap limits and container memory limits, and enable restart policies so one crash does not cascade. 5) Monitor for OutOfMemoryError events, abnormal heap growth, and unexpected restarts in Java services, and alert on large inbound serialized payloads.
What systems are affected by CVE-2026-102554?
This vulnerability affects the following AI/ML architecture patterns: Model serving, Data and feature pipelines, Distributed training and compute frameworks, Java-based ML services.
What is the CVSS score for CVE-2026-102554?
CVE-2026-102554 has a CVSS v3.1 base score of 5.9 (HIGH). The EPSS exploitation probability is 0.35%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0029Denial of AI ServiceAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
Allocation of resources without limits or throttling (CWE-770) during Java object deserialization in Google Guava versions 4.0 through 33.7.1 allows an attacker to cause a Denial of Service via OutOfMemoryError. When deserializing CompactHashMap, CompactHashSet, or MapMakerInternalMap instances, Guava eagerly allocates an array based on a caller-specified size parameter without throttling, permitting memory exhaustion from crafted serialization streams.
Exploitation Scenario
An attacker finds a Java-based ML data ingestion or model-serving service that accepts serialized objects over an RPC endpoint, message queue, or cache. They send a small crafted serialization stream representing a CompactHashMap with an enormous declared size. During deserialization, Guava eagerly allocates a huge array, triggering OutOfMemoryError. The service crashes or hangs, and repeated requests keep inference or pipeline processing offline.
Weaknesses (CWE)
CWE-400Uncontrolled Resource ConsumptionPrimaryCWE-502Deserialization of Untrusted DataPrimaryCWE-770Allocation of Resources Without Limits or ThrottlingPrimaryCWE-502Deserialization of Untrusted DataCWE-770Allocation of Resources Without Limits or ThrottlingCWE-400 — Uncontrolled Resource Consumption: The product does not properly control the allocation and maintenance of a limited resource.
- [Architecture and Design] Design throttling mechanisms into the system architecture. The best protection is to limit the amount of resources that an unauthorized user can cause to be expended. A strong authentication and access control model will help prevent such attacks from occurring in the first place. The login application should be protected against DoS attacks as much as possible. Limiting the database access, perhaps by caching result sets, can help minimize the resources expended. To further limit the potential for a DoS attack, consider tracking the rate of requests received from users and blocking requests that exceed a defined rate threshold.
- [Architecture and Design] Mitigation of resource exhaustion attacks requires that the target system either: The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question. The second solution is simply difficult to effectively institute -- and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker. recognizes the attack and denies that user further access for a given amount of time, or uniformly throttles all requests in order to make it more difficult to consume resources more quickly than they can again be freed.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
Timeline
Related Vulnerabilities
CVE-2026-468589.1Oracle APM: unauthenticated write/DoS via JVM Diagnostics
Same package: apmCVE-2026-579478.5Pinpoint APM: SSRF via alarm webhook registration
Same package: apmCVE-2022-292637.8F5 BIG-IP APM: insecure temp files enable local privesc
Same package: apmCVE-2026-455397.4Microsoft APM: symlink attack leaks host files in agent deps
Same package: apmCVE-2026-579486.8Pinpoint: insecure JWT cookie enables session hijacking
Same package: apm