| Denial of Service vulnerability for servers that use Guava and deserialize attacker data | Chris Povirk | 25/04/18 16:23 | DescriptionUnbounded memory allocation in Google Guava 11.0 through 24.x allows remote attackers to conduct denial of service attacks against servers that depend on this library and deserialize attacker-provided data, because the Additional InformationDuring deserialization, two Guava classes accept a caller-specified size parameter and eagerly allocate an array of that size:
If a server deserializes instances sent by an attacker, the attacker can quickly force the server to allocate all its memory, without even sending the promised number of elements. Note that most servers that accept serialized data will deserialize objects of these types as long as they are on the classpath, even if they are not used by the server. (It is possible to set up a whitelist or blacklist for Java serialization, but few service owners do. GWT serialization does operate with a whitelist by default, but it is usually a large, automatically generated whitelist that often includes the problem class.) Guava 25.0 eliminates the eager allocation of the arrays. This fixes the vulnerability. (We will see about getting a patch release for 24.x available, as well.) Note that it will still be possible for an attacker to send an Final note for users of old versions of Guava: Guava previously had a batch of similar problems, which were fixed in Guava 19.0. Metadata
CVE Entry, Wiki page [needs to be updated to say "25.0" instead of "24.2" -- 25.0 is correct] |
| Re: Denial of Service vulnerability for servers that use Guava and deserialize attacker data | Chris Povirk | 26/04/18 04:28 | We've released Guava 24.1.1, which is identical to 24.1 except that it has the same fix as 25.0. |