October 20, 2020
The full version string for this update release is 11.0.9+7 (where "+" means "build"). The version number is 11.0.9.
JDK 11.0.9 contains IANA time zone data version 2020a. For more information, refer to Timezone Data Versions in the JRE Software.
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 11.0.9 are specified in the following table:
JRE Family Version | JRE Security Baseline (Full Version String) |
---|---|
11 | 11.0.9+7 |
8 | 1.8.0_271-b09 |
7 | 1.7.0_281-b06 |
Oracle recommends that the JDK is updated with each Critical Patch Update (CPU). In order to determine if a release is the latest, the Security Baseline page can be used to determine which is the latest version for each release family.
Critical patch updates, which contain security vulnerability fixes, are announced one year in advance on Critical Patch Updates, Security Alerts and Bulletins. It is not recommended that this JDK (version 11.0.9) be used after the next critical patch update scheduled for January 19, 2021.
Weak named curves are disabled by default by adding them to the following disabledAlgorithms
security properties: jdk.tls.disabledAlgorithms
, jdk.certpath.disabledAlgorithms
, and jdk.jar.disabledAlgorithms
. The named curves are listed below.
With 47 weak named curves to be disabled, adding individual named curves to each disabledAlgorithms
property would be overwhelming. To relieve this, a new security property, jdk.disabled.namedCurves
, is implemented that can list the named curves common to all of the disabledAlgorithms
properties. To use the new property in the disabledAlgorithms
properties, precede the full property name with the keyword include
. Users can still add individual named curves to disabledAlgorithms
properties separate from this new property. No other properties can be included in the disabledAlgorithms
properties.
To restore the named curves, remove the include jdk.disabled.namedCurves
either from specific or from all disabledAlgorithms
security properties.
To restore one or more curves, remove the specific named curve(s) from the jdk.disabled.namedCurves
property.
Curves that are disabled through jdk.disabled.namedCurves
include the following:
secp112r1, secp112r2, secp128r1, secp128r2, secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, sect113r1, sect113r2, sect131r1, sect131r2, sect163k1, sect163r1, sect163r2, sect193r1, sect193r2, sect233k1, sect233r1, sect239k1, sect283k1, sect283r1, sect409k1, sect409r1, sect571k1, sect571r1, X9.62 c2tnb191v1, X9.62 c2tnb191v2, X9.62 c2tnb191v3, X9.62 c2tnb239v1, X9.62 c2tnb239v2, X9.62 c2tnb239v3, X9.62 c2tnb359v1, X9.62 c2tnb431r1, X9.62 prime192v2, X9.62 prime192v3, X9.62 prime239v1, X9.62 prime239v2, X9.62 prime239v3, brainpoolP256r1, brainpoolP320r1, brainpoolP384r1, brainpoolP512r1
Curves that remain enabled are: secp256r1, secp384r1, secp521r1, X25519, X448
The Kerberos client has been enhanced with the support of principal name canonicalization and cross-realm referrals, as defined by the RFC 6806 protocol extension.
As a result of this new feature, the Kerberos client can take advantage of more dynamic environment configurations and does not necessarily need to know (in advance) how to reach the realm of a target principal (user or service).
Support is enabled by default and 5 is the maximum number of referral hops allowed. To turn it off, set the sun.security.krb5.disableReferrals
security or system property to false. To configure a custom maximum number of referral hops, set the sun.security.krb5.maxReferrals
security or system property to any positive value.
See further information in JDK-8223172.
A new system property, jdk.tls.maxHandshakeMessageSize
, has been added to set the maximum allowed size for the handshake message in TLS/DTLS handshaking. The default value of the system property is 32768 (32 kilobytes).
A new system property, jdk.tls.maxCertificateChainLength
, has been added to set the maximum allowed length of the certificate chain in TLS/DTLS handshaking. The default value of the system property is 10.
The keytool
and jarsigner
tools have been updated to warn users when weak cryptographic algorithms are used in keys, certificates, and signed JARs before they are disabled. The weak algorithms are set in the jdk.security.legacyAlgorithms
security property in the java.security
configuration file. In this release, the tools issue warnings for the SHA-1 hash algorithm and 1024-bit RSA/DSA keys.
The 'canonicalize' flag in the krb5.conf file is now supported by the JDK Kerberos implementation. When set to true, RFC 6806 name canonicalization is requested by clients in TGT requests to KDC services (AS protocol). Otherwise, and by default, it is not requested.
The new default behavior is different from JDK 14 and previous releases where name canonicalization was always requested by clients in TGT requests to KDC services (provided that support for RFC 6806 was not explicitly disabled with the sun.security.krb5.disableReferrals system or security properties).
A new environment property,
jdk.jndi.ldap.mechsAllowedToSendCredentials
, has been added to
control which LDAP authentication mechanisms are allowed to send
credentials over clear
LDAP connections - a connection not secured
with TLS. An encrypted
LDAP connection is a connection opened
by using ldaps
scheme, or a connection opened by using ldap
scheme
and then upgraded to TLS with a STARTTLS extended operation.
The value of the property, which is by default not set, is a comma
separated list of the mechanism names that are permitted to authenticate
over a clear
connection. If a value is not specified for the property, then all mechanisms
are allowed. If the specified value is an empty list, then no mechanisms are
allowed (except for none
and anonymous
). The default value for this property is 'null'
( i.e. System.getProperty("jdk.jndi.ldap.mechsAllowedToSendCredentials")
returns 'null'). To explicitly permit all mechanisms to authenticate over a clear
connection, the property
value can be set to "all"
. If a connection is downgraded from
encrypted
to clear
, then only the mechanisms that are explicitly permitted are allowed.
The property can be supplied to the LDAP context environment map, or set globally as a system property. When both are supplied, the environment map takes precedence.
Note: none
and anonymous
authentication mechanisms are exempted
from these rules and are always allowed regardless of the property value.
The following root certificates have been added to the cacerts truststore:
+ SSL Corporation
+ sslrootrsaca
DN: CN=SSL.com Root Certification Authority RSA, O=SSL Corporation, L=Houston, ST=Texas, C=US
+ sslrootevrsaca
DN: CN=SSL.com EV Root Certification Authority RSA R2, O=SSL Corporation, L=Houston, ST=Texas, C=US
+ sslrooteccca
DN: CN=SSL.com Root Certification Authority ECC, O=SSL Corporation, L=Houston, ST=Texas, C=US
The following root certificate has been added to the cacerts truststore:
+ Entrust
+ entrustrootcag4
DN: CN=Entrust Root Certification Authority - G4, OU="(c) 2015 Entrust, Inc. - for authorized use only",
OU=See www.entrust.net/legal-terms, O="Entrust, Inc.", C=US
English time zone names provided by the CLDR locale provider are now correctly synthesized following the CLDR spec, rather than substituted from the COMPAT provider. For example, SHORT style names are no longer synthesized abbreviations of LONG style names, but instead produce GMT offset formats.
The deserialization of java.lang.reflect.Proxy
objects can be limited by setting the system property jdk.serialProxyInterfaceLimit
.
The limit is the maximum number of interfaces allowed per Proxy in the stream.
Setting the limit to zero prevents any Proxies from being deserialized including Annotations, a limit of less than 2 might interfere with RMI operations.
This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update.
➜ Issues fixed in 11.0.9:
# | BugId | Component | Subcomponent | Summary |
---|---|---|---|---|
1 | JDK-8220150 | client-libs | 2d | [macos] macos10.14 Mojave returns anti-aliased glyphs instead of aliased B&W glyphs |
2 | JDK-8244818 | client-libs | 2d | [macos] Java2D Queue Flusher crash while moving application window to external monitor |
3 | JDK-8240518 | client-libs | java.awt | Incorrect JNU_ReleaseStringPlatformChars in Windows Print |
4 | JDK-8243925 | client-libs | java.awt | Toolkit#getScreenInsets() returns wrong value on HiDPI screens (Windows) |
5 | JDK-8249278 | client-libs | javax.accessibility | Revert JDK-8226253 which breaks the spec of AccessibleState.SHOWING for JList |
6 | JDK-8215396 | client-libs | javax.swing | JTabbedPane preferred size calculation is wrong for SCROLL_TAB_LAYOUT |
7 | JDK-8249251 | client-libs | javax.swing | [dark_mode ubuntu 20.04] The selected menu is not highlighted in GTKLookAndFeel |
8 | JDK-8233452 | core-libs | java.math | java.math.BigDecimal.sqrt() with RoundingMode.FLOOR results in incorrect result |
9 | JDK-8216974 | core-libs | java.net | HttpConnection not returned to the pool after 204 response |
10 | JDK-8238270 | core-libs | java.net | java.net HTTP/2 client does not decrease stream count when receives 204 response |
11 | JDK-8218948 | core-libs | java.text | SimpleDateFormat :: format - Zone Names are not reflected correctly during run time |
12 | JDK-8246807 | core-libs | java.util | Incorrect copyright header in TimeZoneDatePermissionCheck.sh |
13 | JDK-8234347 | core-libs | java.util:i18n | "Turkey" meta time zone does not generate composed localized names |
14 | JDK-8062947 | core-libs | javax.naming | Fix exception message to correctly represent LDAP connection failure |
15 | JDK-8222529 | core-svc | debugger | sun.jdwp.listenerAddress agent property uses wrong encoding |
16 | JDK-8227269 | core-svc | debugger | Slow class loading when running with JDWP |
17 | JDK-8229378 | core-svc | debugger | jdwp library loader in linker_md.c quietly truncates on buffer overflow |
18 | JDK-8244703 | core-svc | debugger | "platform encoding not initialized" exceptions with debugger, JNI |
19 | JDK-8234968 | core-svc | java.lang.instrument | check calloc rv in libinstrument InvocationAdapter |
20 | JDK-8203026 | core-svc | tools | java.rmi.NoSuchObjectException: no such object in table |
21 | JDK-8227435 | core-svc | tools | Perf::attach() should not throw a java.lang.Exception |
22 | JDK-8214074 | hotspot | compiler | Optimize Ghash using AVX instructions |
23 | JDK-8224580 | hotspot | compiler | Matcher can cause oop field/array element to be reloaded |
24 | JDK-8225625 | hotspot | compiler | AES Electronic Codebook (ECB) encryption and decryption optimization using AVX512 + VAES instructions |
25 | JDK-8230402 | hotspot | compiler | Allocation of compile task fails with assert: "Leaking compilation tasks?" |
26 | JDK-8231586 | hotspot | compiler | enlarge encoding space for OopMapValue offsets |
27 | JDK-8231756 | hotspot | compiler | [JVMCI] need support for deoptimizing virtual byte arrays encoding non-byte primitives |
28 | JDK-8232083 | hotspot | compiler | Minimal VM is broken after JDK-8231586 |
29 | JDK-8233027 | hotspot | compiler | OopMapSet::all_do does oms.next() twice during iteration |
30 | JDK-8236179 | hotspot | compiler | C1 register allocation failure with T_ADDRESS |
31 | JDK-8236647 | hotspot | compiler | java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode |
32 | JDK-8239083 | hotspot | compiler | C1 assert(known_holder == NULL || (known_holder->is_instance_klass() && (!known_holder->is_interface() || ((ciInstanceKlass*)known_holder)->has_nonstatic_concrete_methods())), "should be non-static concrete method"); |
33 | JDK-8240610 | hotspot | compiler | [JVMCI] Export VMVersion::_has_intel_jcc_erratum to JVMCI compiler |
34 | JDK-8241234 | hotspot | compiler | Unify monitor enter/exit runtime entries. |
35 | JDK-8244407 | hotspot | compiler | JVM crashes after transformation in C2 IdealLoopTree::split_fall_in |
36 | JDK-8244672 | hotspot | compiler | [JVMCI] Export InstanceKlass::being_initialized to JVMCI compilers |
37 | JDK-8244719 | hotspot | compiler | CTW: C2 compilation fails with "assert(!VerifyHashTableKeys || _hash_lock == 0) failed: remove node from hash table before modifying it" |
38 | JDK-8245714 | hotspot | compiler | "Bad graph detected in build_loop_late" when loads are pinned on loop limit check uncommon branch |
39 | JDK-8245801 | hotspot | compiler | StressRecompilation triggers assert "redundunt OSR recompilation detected. memory leak in CodeCache!" |
40 | JDK-8246153 | hotspot | compiler | TestEliminateArrayCopy fails with -XX:+StressReflectiveCode |
41 | JDK-8246203 | hotspot | compiler | Segmentation fault in verification due to stack overflow with -XX:+VerifyIterativeGVN |
42 | JDK-8246453 | hotspot | compiler | TestClone crashes with "all collected exceptions must come from the same place" |
43 | JDK-8247350 | hotspot | compiler | [aarch64] assert(false) failed: wrong size of mach node |
44 | JDK-8247992 | hotspot | compiler | [JVMCI] HotSpotNmethod.executeVarargs can try execute a zombie nmethod |
45 | JDK-8248321 | hotspot | compiler | [JVMCI] improve libgraal logging and fatal error handling |
46 | JDK-8248359 | hotspot | compiler | Update JVMCI |
47 | JDK-8248410 | hotspot | compiler | Correct Fix for 8236647: java/lang/invoke/CallSiteTest.java failed with InvocationTargetException in Graal mode |
48 | JDK-8248987 | hotspot | compiler | AOT's Linker.java seems to eagerly fail-fast on Windows. |
49 | JDK-8248851 | hotspot | gc | CMS: Missing memory fences between free chunk check and klass read |
50 | JDK-8210024 | hotspot | jfr | JFR calls virtual is_Java_thread from ~Thread() |
51 | JDK-8210977 | hotspot | jfr | jdk/jfr/event/oldobject/TestThreadLocalLeak.java fails to find ThreadLocalObject |
52 | JDK-8219904 | hotspot | jfr | ClassCastException when calling FlightRecorderMXBean#getRecordings() |
53 | JDK-8230767 | hotspot | jfr | FlightRecorderListener returns null recording |
54 | JDK-8243489 | hotspot | jfr | Thread CPU Load event may contain wrong data for CPU time under certain conditions |
55 | JDK-8211064 | hotspot | runtime | [AArch64] Interpreter and c1 don't correctly handle jboolean results in native calls |
56 | JDK-8213410 | hotspot | runtime | UseCompressedOops requirement check fails fails on 32-bit system |
57 | JDK-8213574 | hotspot | runtime | Deadlock in string table expansion when dumping lots of CDS classes |
58 | JDK-8215342 | hotspot | runtime | [Zero] Build fails after JDK-8200613 |
59 | JDK-8215879 | hotspot | runtime | Aarch64: ReservedStackAccess may leave stack guard in inconsistent state |
60 | JDK-8215961 | hotspot | runtime | jdk/jfr/event/os/TestCPUInformation.java fails on AArch64 |
61 | JDK-8218185 | hotspot | runtime | aarch64: missing LoadStore barrier in TemplateTable::putfield_or_static |
62 | JDK-8219635 | hotspot | runtime | aarch64: missing LoadStore barrier in TemplateTable::fast_storefield |
63 | JDK-8219698 | hotspot | runtime | aarch64: SIGILL triggered when specifying unsupported hardware features |
64 | JDK-8219712 | hotspot | runtime | code_size2 (defined in stub_routines_x86.hpp) is too small on new Skylake CPUs |
65 | JDK-8221220 | hotspot | runtime | AArch64: Add StoreStore membar explicitly for Volatile Writes in TemplateTable |
66 | JDK-8224828 | hotspot | runtime | aarch64: rflags is not correct after safepoint poll |
67 | JDK-8225329 | hotspot | runtime | -XX:+PrintBiasedLockingStatistics causes crash during initialization on Windows platforms |
68 | JDK-8228601 | hotspot | runtime | AArch64: Fix interpreter code at JVMCI deoptimization entry |
69 | JDK-8233466 | hotspot | runtime | aarch64: remove unnecessary load of mdo when profiling return and parameters type |
70 | JDK-8233839 | hotspot | runtime | aarch64: missing memory barrier in NewObjectArrayStub and NewTypeArrayStub |
71 | JDK-8234270 | hotspot | runtime | [REDO] JDK-8204128 NMT might report incorrect numbers for Compiler area |
72 | JDK-8240295 | hotspot | runtime | hs_err elapsed time in seconds is not accurate enough |
73 | JDK-8241586 | hotspot | runtime | compiler/cpuflags/TestAESIntrinsicsOnUnsupportedConfig.java fails on aarch64 |
74 | JDK-8248219 | hotspot | runtime | aarch64: missing memory barrier in fast_storefield and fast_accessfield |
75 | JDK-8228448 | hotspot | svc | Jconsole can't connect to itself |
76 | JDK-8163805 | hotspot | svc-agent | hotspot/test/serviceability/sa/sadebugd/SADebugDTest.java failed with timed out |
77 | JDK-8196969 | hotspot | svc-agent | JTreg Failure: serviceability/sa/ClhsdbJstack.java causes NPE |
78 | JDK-8203364 | hotspot | svc-agent | Some serviceability/sa/ tests intermittently fail with java.io.IOException: LingeredApp terminated with non-zero exit code 3 |
79 | JDK-8204994 | hotspot | svc-agent | SA might fail to attach to process with "Windbg Error: WaitForEvent failed" |
80 | JDK-8205534 | hotspot | svc-agent | Remove SymbolTable dependency from serviceability agent |
81 | JDK-8209790 | hotspot | svc-agent | SA tools not providing option to connect to debug server |
82 | JDK-8214797 | hotspot | svc-agent | TestJmapCoreMetaspace.java timed out |
83 | JDK-8223665 | hotspot | svc-agent | SA: debugd options should follow jhsdb style |
84 | JDK-8223814 | hotspot | svc-agent | SA: jhsdb common help needs to be more detailed |
85 | JDK-8225636 | hotspot | svc-agent | SA can't handle prelinked libraries |
86 | JDK-8232592 | hotspot | svc-agent | <Unknown compiled code> is shown in jstack mixed mode |
87 | JDK-8235637 | hotspot | svc-agent | jhsdb jmap from OpenJDK 11.0.5 doesn't work if prelink is enabled |
88 | JDK-8235846 | hotspot | svc-agent | Improve WindbgDebuggerLocal implementation |
89 | JDK-8244310 | other-libs | other | Validate-headers failed for HugeArenaTracking.java |
90 | JDK-8215694 | security-libs | java.security | keytool cannot generate RSASSA-PSS certificates |
91 | JDK-8238448 | security-libs | java.security | RSASSA-PSS signature verification fail when using certain odd key sizes |
92 | JDK-8242184 | security-libs | java.security | Default signature algorithm for an RSASSA-PSS key |
93 | JDK-8242556 | security-libs | java.security | Cannot load RSASSA-PSS public key with non-null params from byte array |
94 | JDK-8244087 | security-libs | java.security | 2020-04-24 public suffix list update v ff6fcea |
95 | JDK-8245151 | security-libs | java.security | jarsigner should not raise duplicate warnings on verification |
96 | JDK-8215443 | security-libs | javax.net.ssl | The use of TransportContext.fatal() leads to bad coding style |
97 | JDK-8219991 | security-libs | javax.net.ssl | New fix of the deadlock in sun.security.ssl.SSLSocketImpl |
98 | JDK-8236464 | security-libs | javax.net.ssl | SO_LINGER option is ignored by SSLSocket in JDK 11 |
99 | JDK-8226719 | security-libs | org.ietf.jgss | Kerberos login to Windows 2000 failed with "Inappropriate type of checksum in message" |
100 | JDK-8227381 | security-libs | org.ietf.jgss | GSS login fails with PREAUTH_FAILED |
101 | JDK-8227437 | security-libs | org.ietf.jgss:krb5 | S4U2proxy cannot continue because server's TGT cannot be found |
102 | JDK-8246193 | security-libs | org.ietf.jgss:krb5 | Possible NPE in ENC-PA-REP search in AS-REQ |
103 | JDK-8193367 | tools | javac | annotated type variables bounds crash javac |
104 | JDK-8213703 | tools | javac | LambdaConversionException: Invalid receiver type not a subtype of implementation type interface |
105 | JDK-8214571 | tools | javac | -Xdoclint of array serialField gives "error: array type not allowed here" |
106 | JDK-8244763 | tools | javac | Update --release 8 symbol information after JSR 337 MR3 |
107 | JDK-8240169 | tools | javadoc(tool) | javadoc fails to link to docs with non-matching modularity |
108 | JDK-8245981 | tools | javadoc(tool) | Upgrade to jQuery 3.5.1 |
109 | JDK-8080353 | tools | jshell | JShell: Better error message on attempting to add default method |
110 | JDK-8159740 | tools | jshell | JShell: corralled declarations do not have correct source to wrapper mapping |
111 | JDK-8212167 | tools | jshell | JShell : Stack trace of exception has wrong line number |
112 | JDK-8214491 | tools | jshell | Upgrade to JLine 3.9.0 |
113 | JDK-8215243 | tools | jshell | JShell tests failing intermitently with "Problem cleaning up the following threads:" |
114 | JDK-8215244 | tools | jshell | jdk/jshell/ToolBasicTest.java testHistoryReference failed |
115 | JDK-8215438 | tools | jshell | jshell tool: Ctrl-D causes EOF |
116 | JDK-8229815 | tools | jshell | Upgrade Jline to 3.12.1 |
117 | JDK-8241445 | tools | launcher | Fix copyrights after JDK-8240629 change |
118 | JDK-8248348 | xml | jaxp | Regression caused by the update to BCEL 6.0 |