Bug 1502649 (CVE-2017-10281)

Summary: CVE-2017-10281 OpenJDK: multiple unbounded memory allocations in deserialization (Serialization, 8174109)
Product: [Other] Security Response Reporter: Tomas Hoger <thoger>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: dbhole, jvanek, security-response-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-06 14:15:50 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1499213, 1499214, 1499215, 1499216, 1499223, 1499224, 1499225, 1499226, 1503325, 1503326, 1503327, 1503328, 1503329, 1503330, 1503331, 1503332, 1503333, 1503334, 1503335, 1503336, 1515469, 1515470, 1515471, 1515472, 1516384, 1516385, 1516386, 1516387    
Bug Blocks: 1499210    

Description Tomas Hoger 2017-10-16 11:39:41 UTC
It was discovered that the implementation of multiple classes in the Serialization component of OpenJDK did not limit the amount of memory allocated when creating object instances from a serialized form.  A specially-crafted input could cause a Java application to use an excessive amount of memory when deserialized.

Comment 2 Tomas Hoger 2017-10-17 19:41:22 UTC
Oracle JDK release notes include the following note regarding this fix:

  core-libs/java.util:collections
  Collections use serialization filter to limit array sizes 

  Deserialization of certain collection instances will cause arrays to be
  allocated. The ObjectInputFilter.checkInput() method is now called prior
  to allocation of these arrays. Deserializing instances of ArrayDeque,
  ArrayList, IdentityHashMap, PriorityQueue,
  java.util.concurrent.CopyOnWriteArrayList, and the immutable collections
  (as returned by List.of, Set.of, and Map.of) will call checkInput() with
  a FilterInfo instance whose serialClass() method returns Object[].class.
  Deserializing instances of HashMap, HashSet, Hashtable, and Properties
  will call checkInput() with a FilterInfo instance whose serialClass()
  method returns Map.Entry[].class. In both cases, the
  FilterInfo.arrayLength() method will return the actual length of the array
  to be allocated. The exact circumstances under which the serialization
  filter is called, and with what information, is subject to change in
  future releases.

  JDK-8174109 (not public)


http://www.oracle.com/technetwork/java/javase/9-0-1-relnotes-3883752.html
http://www.oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html
http://www.oracle.com/technetwork/java/javaseproducts/documentation/javase7supportreleasenotes-1601161.html#R170_161
http://www.oracle.com/technetwork/java/javase/documentation/overview-156328.html#R160_171

Comment 3 Tomas Hoger 2017-10-17 20:54:46 UTC
Public now via Oracle CPU October 2017:

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html#AppendixJAVA

The issue was fixed in Oracle JDK 9.0.1, 8u151, 7u161, and 6u171.

Comment 7 Tomas Hoger 2017-10-18 09:52:22 UTC
OpenJDK-8 upstream commit:

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/4b8d4f91a480

Comment 8 errata-xmlrpc 2017-10-20 11:34:13 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6
  Red Hat Enterprise Linux 7

Via RHSA-2017:2998 https://access.redhat.com/errata/RHSA-2017:2998

Comment 9 errata-xmlrpc 2017-10-23 07:49:43 UTC
This issue has been addressed in the following products:

  Oracle Java for Red Hat Enterprise Linux 6
  Oracle Java for Red Hat Enterprise Linux 7

Via RHSA-2017:2999 https://access.redhat.com/errata/RHSA-2017:2999

Comment 10 errata-xmlrpc 2017-10-24 12:13:52 UTC
This issue has been addressed in the following products:

  Oracle Java for Red Hat Enterprise Linux 6
  Oracle Java for Red Hat Enterprise Linux 7

Via RHSA-2017:3047 https://access.redhat.com/errata/RHSA-2017:3047

Comment 11 errata-xmlrpc 2017-10-24 12:19:39 UTC
This issue has been addressed in the following products:

  Oracle Java for Red Hat Enterprise Linux 7
  Oracle Java for Red Hat Enterprise Linux 6

Via RHSA-2017:3046 https://access.redhat.com/errata/RHSA-2017:3046

Comment 14 errata-xmlrpc 2017-11-27 18:06:13 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7 Supplementary

Via RHSA-2017:3264 https://access.redhat.com/errata/RHSA-2017:3264

Comment 15 errata-xmlrpc 2017-11-28 20:41:54 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6 Supplementary

Via RHSA-2017:3267 https://access.redhat.com/errata/RHSA-2017:3267

Comment 16 errata-xmlrpc 2017-11-28 20:44:45 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6 Supplementary
  Red Hat Enterprise Linux 7 Supplementary

Via RHSA-2017:3268 https://access.redhat.com/errata/RHSA-2017:3268

Comment 17 errata-xmlrpc 2017-12-06 13:44:32 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6
  Red Hat Enterprise Linux 7

Via RHSA-2017:3392 https://access.redhat.com/errata/RHSA-2017:3392

Comment 18 errata-xmlrpc 2017-12-13 16:55:57 UTC
This issue has been addressed in the following products:

  Red Hat Satellite 5.8
  Red Hat Satellite 5.8 ELS

Via RHSA-2017:3453 https://access.redhat.com/errata/RHSA-2017:3453