Bug 1328210 (CVE-2016-3427)

Summary: CVE-2016-3427 OpenJDK: unrestricted deserialization of authentication credentials (JMX, 8144430)
Product: [Other] Security Response Reporter: Tomas Hoger <thoger>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: urgent Docs Contact:
Priority: urgent    
Version: unspecifiedCC: dbhole, jvanek, security-response-team
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
It was discovered that the RMI server implementation in the JMX component in OpenJDK did not restrict which classes can be deserialized when deserializing authentication credentials. A remote, unauthenticated attacker able to connect to a JMX port could possibly use this flaw to trigger deserialization flaws.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-05-11 15:53:55 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:    
Bug Blocks: 1324915    

Description Tomas Hoger 2016-04-18 17:55:21 UTC
It was discovered that the RMI (Java Remote Method Invocation) server implementation in the JMX (Java Management Extensions) component of OpenJDK did not restrict which classes can be deserialized when deserializing authentication credentials.  A remote unauthenticated attacker able to connect to a JMX port could possibly use this flaw trigger deserialization flaws.

Comment 1 Tomas Hoger 2016-04-19 19:08:02 UTC
Related note in Oracle JDK release notes:

  New attribute for JMX RMI JRMP servers specifies a list of class names to
  use when deserializing server credentials

  A new java attribute has been defined for the environment to allow a JMX
  RMI JRMP server to specify a list of class names. These names correspond
  to the closure of class names that are expected by the server when
  deserializing credentials. For instance, if the expected credentials were
  a List<string>, then the closure would constitute all the concrete classes
  that should be expected in the serial form of a list of Strings.

  By default, this attribute is used only by the default agent with the
  following:

  {   
    "[Ljava.lang.String;",   
    "java.lang.String" 
  } 

  Only arrays of Strings and Strings will be accepted when deserializing the
  credentials. 

  The attribute name is:

  "jmx.remote.rmi.server.credential.types"

  The following is an example of a user starting a server with the specified
  credentials class names:

  Map<String, Object> env = new HashMap<>(1);
   env.put ( 
   "jmx.remote.rmi.server.credential.types",
     new String[]{
       String[].class.getName(),
       String.class.getName()
     }
   );
   JMXConnectorServer server
     = JMXConnectorServerFactory.newJMXConnectorServer(url, env, mbeanServer);

  The new feature should be used by directly specifying: 

  "jmx.remote.rmi.server.credential.types" 

  JDK-8144430 (not public)

http://www.oracle.com/technetwork/java/javase/8u91-relnotes-2949462.html
http://www.oracle.com/technetwork/java/javaseproducts/documentation/javase7supportreleasenotes-1601161.html#R170_101
http://www.oracle.com/technetwork/java/javase/documentation/overview-156328.html#R160_115

Comment 2 Tomas Hoger 2016-04-19 20:59:24 UTC
Public now via Oracle Critical Patch Update - April 2016.  Fixed in Oracle Java SE 6u115, 7u101, and 8u91.

External References:

http://www.oracle.com/technetwork/topics/security/cpuapr2016-2881694.html#AppendixJAVA

Comment 3 errata-xmlrpc 2016-04-20 19:35:55 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6

Via RHSA-2016:0651 https://rhn.redhat.com/errata/RHSA-2016-0651.html

Comment 4 errata-xmlrpc 2016-04-20 19:36:32 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2016:0650 https://rhn.redhat.com/errata/RHSA-2016-0650.html

Comment 5 errata-xmlrpc 2016-04-21 13:46:50 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 5
  Red Hat Enterprise Linux 7

Via RHSA-2016:0676 https://rhn.redhat.com/errata/RHSA-2016-0676.html

Comment 6 errata-xmlrpc 2016-04-21 14:43:37 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-2016:0677 https://rhn.redhat.com/errata/RHSA-2016-0677.html

Comment 7 errata-xmlrpc 2016-04-21 14:44:38 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6

Via RHSA-2016:0675 https://rhn.redhat.com/errata/RHSA-2016-0675.html

Comment 8 errata-xmlrpc 2016-04-21 14:59:11 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 5
  Oracle Java for Red Hat Enterprise Linux 6

Via RHSA-2016:0679 https://rhn.redhat.com/errata/RHSA-2016-0679.html

Comment 9 errata-xmlrpc 2016-04-21 15:00:08 UTC
This issue has been addressed in the following products:

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

Via RHSA-2016:0678 https://rhn.redhat.com/errata/RHSA-2016-0678.html

Comment 10 Tomas Hoger 2016-04-21 19:49:18 UTC
OpenJDK8 upstream commit:

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/32f64c19b5fb

Comment 11 errata-xmlrpc 2016-04-29 17:51:06 UTC
This issue has been addressed in the following products:

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

Via RHSA-2016:0701 https://rhn.redhat.com/errata/RHSA-2016-0701.html

Comment 12 errata-xmlrpc 2016-04-29 17:52:24 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 5 Supplementary

Via RHSA-2016:0702 https://rhn.redhat.com/errata/RHSA-2016-0702.html

Comment 13 errata-xmlrpc 2016-05-02 13:12:38 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6 Supplementary
  Red Hat Enterprise Linux 5 Supplementary

Via RHSA-2016:0708 https://rhn.redhat.com/errata/RHSA-2016-0708.html

Comment 14 errata-xmlrpc 2016-05-03 18:36:05 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7 Supplementary

Via RHSA-2016:0716 https://rhn.redhat.com/errata/RHSA-2016-0716.html

Comment 15 errata-xmlrpc 2016-05-09 14:05:34 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7
  Red Hat Enterprise Linux 5
  Red Hat Enterprise Linux 6

Via RHSA-2016:0723 https://rhn.redhat.com/errata/RHSA-2016-0723.html

Comment 16 errata-xmlrpc 2016-05-11 14:09:45 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 6 Supplementary

Via RHSA-2016:1039 https://rhn.redhat.com/errata/RHSA-2016-1039.html

Comment 17 errata-xmlrpc 2016-07-18 13:57:44 UTC
This issue has been addressed in the following products:

  Red Hat Satellite 5.6
  Red Hat Satellite 5.7

Via RHSA-2016:1430 https://access.redhat.com/errata/RHSA-2016:1430

Comment 18 errata-xmlrpc 2017-05-09 16:44:27 UTC
This issue has been addressed in the following products:

  Red Hat Satellite 5.6
  Red Hat Satellite 5.7

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