October 17, 2023
The full version string for this update release is 7u401-b07 (where "b" means "build"). The version number is 7u401.
As of July 2022, Java 7 has ended its service life. Oracle provides this restricted binary with and for the sole purpose of running some Oracle products. Please contact Oracle Support for more information.
For more information, refer to Timezone Data Versions in the JRE Software.
The security baseline for the Java Runtime at the time of the release of JDK 7u401 is specified in the following table:
| JRE Family Version | JRE Security Baseline (Full Version String) |
|---|---|
| 7 | 7u401-b07 |
Oracle recommends that the JDK is updated with each Critical Patch Update. 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 7u401) be used after the next critical patch update scheduled for January 16, 2024.
Java SE Subscription customers managing JRE updates/installs for large number of desktops should consider using Java Advanced Management Console (AMC).
For systems unable to reach the Oracle Servers, a secondary mechanism expires this JRE (version 7u401) on 2024-02-16. After either condition is met (new release becoming available or expiration date reached), the JRE will provide additional warnings and reminders to users to update to the newer version. For more information, see 23.1.2 JRE Expiration Date in the Java Platform, Standard Edition Deployment Guide.
The following root certificate from SECOM Trust System has been removed from the cacerts keystore:
+ alias name "secomscrootca1 [jdk]"
Distinguished Name: OU=Security Communication RootCA1, O=SECOM Trust.net, C=JP
The following root certificate has been added to the cacerts truststore:
+ Certigna (Dhimyotis)
+ certignarootca
DN: CN=Certigna Root CA, OU=0002 48146308100036, O=Dhimyotis, C=FR
java.security.manager System Property
(JDK-8301118)
In JDK 12, two new token options for the java.security.manager system property, "allow" and "disallow", were introduced.
Many applications and frameworks are designed to run on multiple JDKs. For those that enable the SecurityManager at runtime via System.setSecurityManager, they have to specify the "allow" option as of JDK 18 (see JDK-8203316). However, these applications would also prefer to use the same command line across multiple versions of the JDK, especially if it is not known what JDK version a user will use.
Currently, if these options are specified in JDK 12 or earlier, the runtime attempts to load a SecurityManager implementation with the classname "allow" or "disallow", which results in a Could not create SecurityManager Error and the application will not start up.
From this release onward, the "allow" and "disallow" options for the java.security.manager system property will be ignored.
The JDK implementation of TLS 1.2 now uses a default Diffie Hellman keysize of 2048 bits when a TLS_DHE cipher suite is negotiated and either the client or server does not support FFDHE, which can negotiate a stronger keysize. The JDK TLS implementation supports FFDHE and it is enabled by default.
As a workaround, users can revert to the previous size by setting the jdk.tls.ephemeralDHKeySize system property to 1024 (at their own risk).
This change does not affect TLS 1.3 as the minimum DH group size is already 2048 bits.
This release also contains fixes for security vulnerabilities described in the Oracle Critical Patch Update (CPU) Oct 2023 for Oracle Java SE (Doc ID 2978178.1).
The following table lists the additional bug fixes included in the JDK 7u401 release:
| # | BugId | Component | Summary |
|---|---|---|---|
| 1 | JDK-8305815 | client-libs/java.awt | Update Libpng to 1.6.39 |
| 2 | JDK-8297887 | hotspot/runtime | Update Siphash |