=============================================================================== Maintenance for Sterling External Authentication Server SEAS2420 iFix 16 March 2020 =============================================================================== This cumulative maintenance archive includes GA release of SEAS 2.4.2.0 plus fixes for the issues listed below. Contents: I. HIPER (High Impact PERvasive) Fixes / Fixes Requiring Action II. Summary of Fixes by Patch/APAR (Latest iFix / FixPack first) III. Detailed Description of Fixes =============================================================================== I. HIPER (High Impact PERvasive) Fixes / Fixes Requiring Action =============================================================================== ACTION - SSP3420 and SEAS2420 are to be retired on September 30, 2020. Make plans to upgrade to SSP6001 and SEAS6001 before then. ACTION - iFix images for HP, Solaris, and zLinux(s390) will no longer be placed on Fix Central. Contact Support if you need an iFix loaded to EcuRep. In SEAS2420 iFix 16 (March 2020): HIPER - Update JRE 1.8 to SR6 FP5 (8.0.6.5) for security patches - See PSIRT21787 for more details. In SEAS2420 iFix 15 (October 2019): ACTION - SEAS Sample exit changes provided for moving global variables to local - See SEAS-665 for details. HIPER - Update JRE 1.8 to SR5 FP40 (8.0.5.40) for security patches - See PSIRT17288 for more details. In SEAS2420 iFix 14 (June 2019): ACTION - JRE 1.8 SR5 FP35 (8.0.5.35) disables anon and null cipher suites and includes a new parm for distrusting CAs. For more information, see the writeup below for PSIRT15330. In SEAS2420 iFix 13 (February 2019): HIPER - Update JRE 1.8 to SR5 FP27 (8.0.5.27) for security patches - See PSIRT12959 and PSIRT13809 for more details. In SEAS2420 iFix 12 (December 2018): HIPER - Possible vulnerability in Jetty server. See PSIRT12571/SEAS-405 In SEAS2420 iFix 11 (August 2018): HIPER - Update JRE 1.8 to SR5 FP17 (8.0.5.17) for security patches - See PSIRT11819 for more details. In SEAS2420 iFix 10 (May 2018): HIPER - Update JRE 1.8 to SR5 FP10 (8.0.5.10) for security patches - See PSIRT10955 for more details. In SEAS2420 iFix 9 (April 2018): HIPER - SSP/SEAS code signing certificate expires June 21, 2018. Upgrade SEAS before that date to keep the SEAS Webstart GUI running. See RTC565487. In SEAS2420 iFix 8 Plus (December 2017): ACTION - If there are customizations to the log4j property files, the Customer must retrofit them after the upgrade. See RTC55707. In SEAS2420 iFix 8 (October 2017): HIPER - Upgrade to Java 8.0.4.10 for Java July 2017 security fixes. In iFix 7 (April 2017): HIPER - Upgrade to Java 1.8 for Java January 2017 security fixes. ACTION - Java 1.8 will not install on Redhat 5. See RTC533801 for details ACTION - Java.security file disables Triple-DES (3DES-CBC) and DES ciphers. See RTC533801 for details In iFix 3 (March 2016): Action - Improve performance through SEAS Custom Exit to HTTP URLs - see IT12882 for details Action - JRE upgrade turns off MD5 support by default - see IT13805 for details In iFix 1 (August 2015): Action - JRE upgrade turns off SSLv3 and RC4 support by default - see IT07375 for details =============================================================================== II. Summary of Fixes by iFix / FixPack /APAR (Latest iFix / FixPack first) =============================================================================== =============================================================================== Fixes for SEAS 2.4.2.0 iFix 16, Build 300 (March 2020) =============================================================================== SEAS-1177/ - SEAS GUI tabs go away after changing Token Manager value SEAS-1178 - Custom exit connecting to invalid URL gets nuisance msg SEAS-1200/PSIRT21787 - Update JRE 1.8 to SR6 FP5 (8.0.6.5) for security patches. SEAS-1230/ - CERT008E Exception encountered doing cert validation =============================================================================== Fixes for SEAS 2.4.2.0 iFix 15, Build 293 (October 2019) =============================================================================== SEAS-665 - SEAS Sample exit changes provided for moving global variables to local MFT-10352/IT29527 - Exit displays LDAP password in readable format in SEAS log MFT-10579/PSIRT17288 - Update JRE 1.8 to SR5 FP40 (8.0.5.40) sor security patches. =============================================================================== Fixes for SEAS 2.4.2.0 iFix 14, Build 288 (June 2019) =============================================================================== MFT-10204/IT28758 - Ldap bind failure after upgrade to JRE 8.0.5.27 SEAS-452 - InstallAnywhere 2018 upgrade for Windows 2016 support MFT-10243/PSIRT15330 - Update JRE 1.8 to SR5 FP35 (8.0.5.35) for security patches =============================================================================== Fixes for SEAS 2.4.2.0 iFix 13, Build 286 (February 2019) =============================================================================== PSIRT12959, - Update JRE 1.8 to SR5 FP27 (8.0.5.27) for security PSIRT13809 patches. =============================================================================== Fixes for SEAS 2.4.2.0 iFix 12, Build 280 (December 2018) =============================================================================== RTC567335/ - Upgrade Apache Components HttpClient to 4.5.5 level MFT-9831/ - Certificate CRL revocation check fails after upgrade PSIRT12571 - SEAS upgrade to Jetty 9.4.11 (Also SEAS-405) MFT-10009/IT27016 - SEAS ldapImportTool.sh does not log exception when wrong FQDN/PORT in the properties file. =============================================================================== Fixes for SEAS 2.4.2.0 iFix 11, Build 270 (August 2018) =============================================================================== RTC565836/IT25733 - SEAS authentication timeout in Custom Exit RTC571266/ - Change password fails when LDAP policy retrieval fails RTC572431/IT25834 - NullPointerExceptions (NPEs) after upgrade PSIRT11819 - Update JRE 1.8 to SR5 FP17 (8.0.5.17) =============================================================================== Fixes for SEAS 2.4.2.0 IFix 10 Plus, Build 265 (July 2018) =============================================================================== RTC571143 - Restore fix for RTC555750 =============================================================================== Fixes for SEAS 2.4.2.0 IFix 10, Build 262 (May 2018) =============================================================================== RTC567354/IT24987 - Getting non-fatal stackOverflowExceptions in log during SILENT install PSIRT10955/10418 - Update JRE 1.8 to SR5 FP10 (8.0.5.10) =============================================================================== Fixes for SEAS 2.4.2.0 IFix 9 Plus, Build 260 (April 2018) =============================================================================== RTC555070/IT24422 - Support password change through OpenLDAP server RTC565040/IT24732 - Excessive error messages for SSPDummyUser pings =============================================================================== Fixes for SEAS 2.4.2.0 IFix 9, Build 259 (April 2018) =============================================================================== RTC559372/IT24331 - SEAS certificate and public key authentication fails after migrating to IBM SDSv64 from Tivoli RTC564014/ - Failure authenticating with HttpBasicAuthentication exit RTC565487/ - SSP/SEAS code signing certificate expires June 21, 2018 =============================================================================== Fixes for SEAS 2.4.2.0 IFix 8 Plus, Build 251 (January 2018) =============================================================================== RTC498507/no APAR - The '-' character is not allowed in the username for SEAS system users RTC555328/IT23537 - Invalid realm failure during SSO token validation RTC56003/IT23857 - SHA2 and SHA3 Cipher Suites not available when selecting "SSLv3, TLSv1, TLSv1.1, or TLSv1.2" =============================================================================== Fixes for SEAS 2.4.2.0 IFix 8 Plus, Build 244 (December 2017) =============================================================================== RTC557073/IT23495 - Engine fails to start after upgrading from pre-SSP3420 RTC557954/IT23539 - Connections are failing authentication or getting dropped =============================================================================== Fixes for SEAS 2.4.2.0 IFix 8 Plus, Build 238 (November 2017) =============================================================================== RTC129184/ - Internal tag names used in EA GUI error messages and log RTC507936/ - Unpredictable install directory when backspace settings not set correctly RTC542362/ - Customized EA_GUI.jnlp file overwritten during upgrade RTC555414/ - On new Windows install, the passhrase box is prepopulated with a ******** string RTC555750/IT23303 - Jetty web server version found in server response header =============================================================================== Fixes for SEAS 2.4.2.0 IFix 8, Build 233 (October 2017) =============================================================================== PSIRT9227 - Update JRE 1.8 to SR4 FP10 (8.0.4.10) RTC553583 - Tivoli LDAP Policy was not being retrieved after upgrade to SDS8.0.1 =============================================================================== Fixes for SEAS 2.4.2.0 IFix 7 Plus, Build 231 (October 2017) =============================================================================== RTC504692/IT15781 - Error after importing CEUNIX user data through LdapImportTool RTC539439/IT20855 - SEAS GUI fails to start with non-IBM JRE RTC550367/IT22489 - NPE in custom token manager after upgrade =============================================================================== Fixes for SEAS 2.4.2.0 IFix 7 Plus, Build 229 (August 2017) =============================================================================== RTC531980/IT19604 - Correlator id not returned for SSO token validation request from CEUNIX. RTC536554/IT20855 - Allow special characters in SEAS password fields RTC542640/IT21204 - Turn off world-writable files No Defect/ - Reduce class clutter on log lines and make the lines readily sortable. =============================================================================== Fixes for SEAS 2.4.2.0 IFix 7, Build 227 (April 2017) =============================================================================== RTC533801/ - Upgrade to Java 1.8 for Java January 2017 security fixes RTC535210/ - RAS Enhancement - Add new startSeas.log, switches for heap dumps and SSL debugging =============================================================================== Fixes for SEAS 2.4.2.0 IFix 6, Build 221 (February 2017) =============================================================================== RTC524012/ - ldapImportTool unable to add sshPublicKey into Oracle ODSEE RTC525080/IT18868 - All SEAS processes queued when 5 active transactions are delayed RTC525605/ - ldapImportTool support to include password policy name during upload RTC527345/IT19159 - Unable to edit existing Authentication Profile RTC527354/IT19159 - Unable to negotiate TLS1.2 when FIPS mode ON RTC528040/IT19158 - Unable to set some TLSv1.2 ciphers RTC528047/IT19156 - Unable to import seas_ad.ldf into Active Directory =============================================================================== Fixes for SEAS 2.4.2.0 IFix 5, Build 211 (December 2016) =============================================================================== No Defect/IT17228 - Upgrade SEAS to IBM JRE 1.7 SR9FP50 for latest security patches RTC508170/ - Allow token validation for CEUNIX RTC510283/RFE468574 - Allow SEAS to verify Hostnames RTC511666/IT17151 - Unable to invoke iKeyman on Solaris 10. RTC513984/ - Enhancement to allow silent Installs for SEAS RTC514318/IT17374 - SSH Public Key authentication through IBM SEAS fails due to trailing blank spaces RTC516324/IT17383 - SEAS does not start if passphrase contains “&” character RTC519864/IT17988 - 2 ciphers missing from SEAS supported ciphersuites list =============================================================================== Fixes for SEAS 2.4.2.0 IFix 4 Plus, Build 196 (August 2016) =============================================================================== RTC505344/IT16081 - Change password portal doesn't work if user is mapped from SEAS. =============================================================================== Fixes for SEAS 2.4.2.0 IFix 4, Build 195 (July 2016) =============================================================================== RTC507060/ no APAR - Fixed the NumberFormatException during ip address conversion =============================================================================== Fixes for SEAS 2.4.2.0 IFix 3, Build 192 (March 2016) =============================================================================== No RTC /IT12342 - Update to Apache Commons-collections library for PSIRT 4202 No RTC /IT13805 - Upgrade to IBM JRE 1.7 SR9 FP30 for latest security patches which turn off MD5 support by default PSIRT4202/IT123242 - Upgrade to Apache Commons Collections 3.2.2 for security fix Enhancement - Add configureAcceptor.sh or .bat tool to add support for TLS 1.1 and 1.2 RTC480322/ - Added the @ character as a supported character for LDAP search DN through SEAS GUI RTC485429/IT12882 - Authentication through SEAS Custom Exits causing slowdowns, timeouts =============================================================================== Fixes for SEAS 2.4.2.0 IFix 2, Build 173 (September 2015) =============================================================================== JRE Upgrade - Upgrade to IBM JRE 1.7 SR9 FP10 for latest security patches =============================================================================== Fixes for SEAS 2.4.2.0 IFix 1, Build 170 (August 2015) =============================================================================== RTC465772/IT08982 - Upgrade to IBM JRE 1.7 SR9 for latest security IT07375 which turns off SSLv3 and RC4 support by default RTC469964/IT09808 - In FIPS mode, cipher selection limited under Java 6. RTC469968 - Allow non-interactive "mode=auto" feature. =============================================================================== III. Detailed Description of Fixes (in Defect ascending order) =============================================================================== RTC129184/ - Internal tag names used in EA GUI error messages and log When an invalid value was specified in the SEAS GUI on the Manage / System Settings screen, the error message used the internal tag name rather than the name on the screen. Example: Invalid number specified for 'tagName.acceptTimeout'. ... Resolution: Corrected the error messages within the SEAS GUI / System Settings screens when these fields failed validation: 'Accept Timeout', 'Read Timeout', 'Connect Timeout', 'Request Thread Pool Size', 'Service Thread Pool Size', 'Session Idle Timeout', 'SSL Handshake Timeout', 'Token Expiration Period' 'Class Name' (from SSO Token/Custom screen) RTC465772/IT08982 - Upgrade to IBM JRE 1.7 SR9 for latest security IT07375 which turn off SSLv3 and RC4 support by default See http://www-01.ibm.com/support/docview.wss?uid=swg21903468 for details of the vulnerabilities addressed. Note that with this new JRE, SEAS only allows TLS sessions by default and will reject SSLv3 sessions. If the SSLv3 protocol is required until other components can switch to TLS, then remove SSLv3 from the line in the /jre/lib/sercurity/java.security file which says jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768. Also, for UNIX/Linux, add the -Dcom.ibm.jsse2.disableSSLv3=false property to the Java startup line(s) in the bin/startSeas.sh script. For Windows, add the property to the " lax.nl.java.option.additional=" line in the bin\SEAS$.lax file. RTC469964/IT09808 - In FIPS mode, cipher selection limited under Java 6. Resolution: Updated the FIPS module to allow extra cipher suites when running under Java 7, which is what is distributed now. RTC469968 - Allow non-interactive "autoshutdown" feature. Enhancement to allow shutting down SEAS without prompting for a userid or password. Syntax: /bin/stopSeas.sh mode=auto RTC480322/ - Added the @ character as a supported character for LDAP search DN through SEAS GUI Resolution: Now add support for the @ character in LDAP domain name queries. This allows SSP fix RTC480882 to use SEAS to authenticate userids with an @ sign in them and map them to a different userid on the back end SI system. RTC485429/IT12882 - Authentication through SEAS Custom Exit to HTTP URLs causing slowdowns, timeouts When running multiple authentication requests through the SEAS Custom exit an HTTP URL (such as SI) the SEAS processing slows down and begins to timeout sessions. The initialization process was destroying and recreating the HTTP client object for each session, causing increased overhead. Resolution: Now check for a property in the startSeas.sh or startSeas.bat startup line, -Dhttp.exit.cache.client=true. If the property is coded, and the HTTP User Auth Exit is being used, the exit initialization code will be bypassed. Action: To eliminate the performance degradation in the HTTP User Auth custom exit, update the startSeas.sh (UNIX) or startSeas.bat (Windows) file to include the -Dhttp.exit.cache.client=true property in the 2 Java call lines (they begin with "nohup"). Example - insert the property just before the -Dhadrian.root.dir property: nohup ... -cp ${CLASSPATH} -Dhttp.exit.cache.client=true -Dhadrian.root.dir=${DIST_DIR} ... JRE Upgrade - Upgrade to IBM JRE 1.7 SR9 FP10 for latest security patches See http://www-01.ibm.com/support/docview.wss?uid=swg21965912 for details of the vulnerabilities addressed. Enhancement - Add configureAcceptor.sh or .bat tool to add support for TLS 1.1 and 1.2 ciphers. PSIRT4202/IT123242 - Upgrade to Apache Commons Collections 3.2.2 for security fix See http://www.ibm.com/support/docview.wss?uid=swg21971415 for more information on the security advisory. The correct version of the Apache Commons Collections jar file is included in this iFix, so there is no need to download the jar file mentioned in the advisory. No RTC /IT12342 - Update to Apache Commons-collections library for PSIRT 4202 Address an Apache Commons Collections vulnerability for handling Java object deserialization. See http://www.ibm.com/support/docview.wss?uid=swg21971412 for more information. No RTC /IT13805 - Upgrade to IBM JRE 1.7 SR9 FP30 for latest security patches which turn off MD5 support by default See http://www-01.ibm.com/support/docview.wss?uid=swg21977054 for details of the vulnerabilities addressed. Note: Review your ciphers and certificates to ensure you do not use MD5. RTC498507/ no APAR - The '-' character is not allowed in the username for SEAS system users Resolution: The SEAS username validation logic has been modified to allow hyphens in system user names. RTC504692/IT15781 - Error after importing CEUNIX user data through LdapImportTool The Customer was unable to establish SSL connections after the SEAS Truststore default password was changed during the execution of the LdapImportTool script. Resolution: Now ensure that the configured SEAS Truststore Password value is not overridden by default values. RTC505344/IT16081 - Change password portal doesn't work if user is mapped from SEAS. When a user tries to change the password on the SSP SSO logon portal, the user is prompted with mapped userid instead of the userid with which user is logged on. This happens when the user authentication profile is setup in SEAS with mapped credentials and LDAP has an entry for the mapped userid. Resolution: Changed SEAS to return the source or client side userid along with the mapped userid and SSP would use the correct userid when the user tries to change the password from the SSP SSO logon portal web page. No Defect/IT17228 - Upgrade SEAS to IBM JRE 1.7 SR9FP50 for latest security patches This JRE includes the quarterly Java security patches through July 2016. See http://www.ibm.com/support/docview.wss?uid=swg21991287 for details. RTC507936/ - Unpredictable install directory when backspace settings not set correctly Inputting data to InstallAnywhere during installation and using the backspace or cursor arrow keys results in bad data. This comes about when the stty terminal settings are not set up correctly. The install directory value may display correctly, but end up containing unprintable backspace or arrow keys in them. Resolution: Added code to inspect for backspace and cursor keystrokes and correct the data inputted. RTC508170/ - Allow token validation for CEUNIX Enhancement to allow CEUNIX to do token validation using the password field. RTC510283/RFE468574 - Allow SEAS to verify Hostnames There was no mechanism to perform DNS checks during certificate validation through SEAS Resolution: IBM SEAS has been modified to allow for DNS hostname checking during certificate validation. When the "Check hostname DNS" field is enabled in SEAS, the user IP address will be matched with information in the user certificate's SAN or certificate CN. RTC511666/IT17151 - Unable to invoke iKeyman on Solaris 10. The IBM hybrid JRE on Solaris delivers ikeyman as a call to the native Java with a class to execute. However, if the JAVA_HOME doesn't point to the IBM JRE, it gets "Could not find or load main class com.ibm.gsk.ikeyman.Ikeyman" Resolution: Corrected Solaris installers for SEAS, SSP, SSP_CM and PS to modify jre/bin/ikeyman so that it always invokes the installed IBM JRE. RTC513984/ - Enhancement to allow silent Installs for SEAS InstallAnywhere Silent Install is a feature which allows for automated installs without questions and answers from the console. It can be used for repetitive installs at Customer sites. The administrator first does the product install in "record" mode which builds an installation properties file for subsequent silent installs in "replay" mode. The SSP Engine, CM, PS, and SEAS have all been updated to allow silent installs. RTC514318/IT17374 - SSH Public Key authentication through IBM SEAS fails due to trailing blank spaces Resolution: Added logic to trim retrieved SSH PUBLIC key from the LDAP before using them in the SSH PUBLIC KEY authentication process. RTC516324/IT17383 - SEAS does not start if passphrase contains “&” character If the SEAS passphrase is changed to include an ampersand "&" character, the system will not start. Gets Startup did not succeed. Terminating: com.sterlingcommerce.hadrian. common.xml.XmlParsingException: Error on line 4: The entity name must immediately follow the '&' in the entity reference. Resolution: Escaped the system password field with the CDATA tag so that the xml converter will work properly RTC519864/IT17988 - 2 ciphers missing from SEAS supported ciphersuites list The ciphers TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 and TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 were not included as supported cipher suites for TLSv1.2. Resolution: Added these ciphers into ssl_tls_ciphers.properties so that they show up on a SEASCipherConfigTool.sh -c protocol=TLSV1.2 command. RTC524012/ - ldapImportTool unable to add sshPublicKey into Oracle ODSEE The ldapImportTool, which is used during Connect:Enterprise for UNIX migrations to SI/SFG, was not properly loading SSH public keys to a target Oracle ODSEE database. Resolution: Now properly load an SSH public key to Oracle systems RTC525080/IT18868 - All SEAS processes queued when 5 active transactions are delayed Customer was using a SEAS custom exit to process certain types of authentication. If the exit processing got hung, five processes would use up all the available threads, effectively locking out all work on the system, whether the authentication went through the custom exit or not. Resolution: Introduced 2 new System Global variables in the GUI to allow a configurable number of threads to process authentications. Service Thread Pool Size controls the number of threads to process authentications, token validations, custom exits, etc. Requests Thread Pool Size controls the number of threads to process incoming connections to SEAS. The default for both variables is 10 threads, with a minimum of 5 and a maximum of 500. RTC525605/ - ldapImportTool support to include password policy name during upload Customer needed the ability to include the name of the LDAP password policy for each user loaded into LDAP. Now provide a way in the ldapImportTool.properties to specify the name of an LDAP password policy for each user loaded. RTC527345/IT19159 - Unable to edit existing Authentication Profile SEAS admin user created an authentication profile that uses the searchDN option, but once it was saved, it could not be edited again. All tabs get an error. Resolution: Added an appropriate password mask, to keep from getting a cyclical error. RTC527354/IT19159 - Unable to negotiate TLS1.2 when FIPS mode ON When running in FIPS MODE, the Secure Accepter will not negotiate to accept connections using TLS 1.2. Resolution: Now allow TLSv1.1 and TLSv1.2 under FIPS mode. RTC528040/IT19158 - Unable to set some TLSv1.2 ciphers The Customer wants to limit which TLSv1.2 cipher suites can be used. The SEASCipherConfigTool -u eaSslProtocol=TLSv1.2 eaCiphers=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, command was not working because these 2 ciphers were missing from the ssl_tls_ciphers.properties file. Resolution. Updated the ssl_ssl_tls_ciphers.properties file to include the 2 missing ciphers and now ship the file in the SEAS jar instead of in the conf directory. RTC528047/IT19156 - Unable to import seas_ad.ldf into Active Directory The AD schema provided by SEAS was missing an end of attribute delimeter, so the imports were unsuccessful. Resolution: Corrected the missing end of attribute delimiter in the SEAS AD schema. RTC531980/IT19604 - Correlator id not returned for SSO token validation request from CEUNIX. When CEUNIX sent in a SSO token validation request with a correlation id, SEAS was not returning the correlation id with the authentication response. Resolution: Now return the correlation id for a SSO token validation. RTC533801/ - Upgrade to Java 1.8 for Java January 2017 security fixes Resolution: Upgrade to IBM JRE 1.8 SR4.1 to take advantage of the improved security features. This level of JRE addresses several Java vulnerabilities documented in the Security Bulletin: http://www.ibm.com/support/docview.wss?uid=swg22001965 ACTION: Java 1.8 will not install on Redhat 5. See this web page for more details: https://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/user/supported_env_80.html ACTION: Disables Triple-DES (3DES_EDE_CBC) and DES ciphers. If your site requires 3DES ciphers (because you have not switched to AES128 or AES256), You may edit the /jre/lib/security/java.security and change the following line from jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, 3DES_EDE_CBC, DESede to jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, DESede Note that the new Java 1.8 contains the following new parameters in the ./jre/lib/security/java.security file. See that file for additional comments. # IBMJCE and IBMSecureRandom SecureRandom seed source. securerandom.source=file:/dev/urandom securerandom.strongAlgorithms=SHA2DRBG:IBMJCE # Controls compatibility mode for the JKS keystore type. keystore.type.compat=true (allows JKS or PKCS12 format) jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \ DSA keySize < 1024 (DSA keysize parm added) # Algorithm restrictions for signed JAR files jdk.jar.disabledAlgorithms=MD2, RSA keySize < 1024 (all new) # Algorithm restrictions for SSL/TLS processing jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768, 3DES_EDE_CBC, DESede (Note: Disabling 3DES_EDE_CBC, DESede is new for this release) # Legacy algorithms for SSL/TLS processing (used as last resort) jdk.tls.legacyAlgorithms (New in 1.8, but not configured) # Policy for the XML Signature secure validation mode. jdk.xml.dsig.secureValidationPolicy=\ disallowAlg http://www.w3.org/TR/1999/REC-xslt-19991116,\ disallowAlg http://www.w3.org/2001/04/xmldsig-more#rsa-md5,\ disallowAlg http://www.w3.org/2001/04/xmldsig-more#hmac-md5,\ disallowAlg http://www.w3.org/2001/04/xmldsig-more#md5,\ maxTransforms 5,\ maxReferences 30,\ disallowReferenceUriSchemes file http https,\ minKeySize RSA 1024,\ minKeySize DSA 1024,\ noDuplicateIds,\ noRetrievalMethodLoops RTC535210/ - RAS Enhancement - Add new startSeas.log, switches for heap dumps and SSL debugging Reliability/Availability/Serviceability (RAS) enhancement to the startSeas.sh and startSeas.bat scripts. 1) By default, capture heap dumps also when asked for a user javacore dump. 2) Add Java SSL Debug parms (# Z=...) so they can be uncommented and used. 3) Start generating a /bin/startSeas.log file with a one line entry for each startup of the SEAS server. RTC536554/IT20855 - Allow special characters in SEAS password fields SEAS was unable to save certain special characters, such as the ampersand (&) in password fields, e.g. the principal password in an LDAP connection definition. Resolution: Added logic to the SEAS server configuration converter module to protect special characters in password values, so they can be saved. RTC539439/IT20855 - SEAS GUI fails to start with non-IBM JRE If the Customer was using a non-IBM JRE when calling the SEAS Webstart GUI, it would put out java.security.NoSuchProviderException: no such provider: IBMJCE and would not start up. Resolution: Updated the Security Properties handler to use the default security provider from the local JRE instead of IBMJCE. RTC542362/ - Customized EA_GUI.jnlp file overwritten during upgrade The Customer upgraded SEAS and found that it overwrote his updates to the EA_GUI.jnlp file, which is used to launch the SEAS GUI. He had configured it to connect to SEAS with https. Resolution: Now save a copy of ./conf/jetty/docroot/webstart/EA_GUI.jnlp during an upgrade install to EA_GUI.jnlp.bak. RTC542640/IT21204 - Turn off world-writable files Customer has a requirement that no files be created with write privileges by all users (i.e. UNIX "Other" ......RW.). By default, the JRE creates a temporary directory under /tmp/.com_ibm_tools_attach for monitoring programs to attach to (e.g. Dynatrace). One file based on the pid called attachNotificationSync has permissions of -rw-rw-rw-. Resolution: Added -Dcom.ibm.tools.attach.enable=no to all scripts associated with SSP, SSPCM, PS, and SEAS so that these world-writable files would no longer be created. ACTION: If you use third party monitoring tools to monitor SSP or SEAS, you may need to change to -Dcom.ibm.tools.attach.enable=yes in the startup scripts. No Defect/ - Reduce class clutter on log lines and make the lines readily sortable. Resolution: Changed the date format on log files from DD MMM YYYY to YYYY-MM-DD to make them easier to collate. Also shortened the class name field to make the log files more readable. RTC550367/IT22489 - NPE in custom token manager after upgrade Getting a NullPointerException during authentication of an SSH key when using a custom token manager. RTC50817 introduced code to check if a password field might be populated with a SEAS token so that Connect:Enterprise for UNIX could participate in Single Signon processing. However, it was not validating the password field before calling the custom SSO token manager with a null value. Resolution:  Now check for a null password field before checking to see if it may contain a SSO token. Also did some cleanup on log messages to make the logs more readable: - Changed the date format and shortened thread and class names - Changed SSP failover logging (sspDUMMYprofile) to TRACE mode - Attempt to suppress some messages so that SEAS can run in INFO mode to get general flow. PSIRT9227 - Update JRE 1.8 to SR4 FP10 (8.0.4.10) Resolution: Update the JRE 1.8 to bring it up to the Oracle July 2017 level for all the security patches. RTC553583 - Tivoli LDAP Policy was not being retrieved after upgrade to SDS8.0.1 Resolution: Now retrieve the correct policy for Tivoli LDAP. RTC555070/IT24422 - Support password change through OpenLDAP server SEAS did not support user password changes when running against an Oracle LDAP, OpenLDAP, or Apache LDAP server. If a new or reset userid had the must-change password flag set, SEAS would not recognize it and pass back the proper values to SSP to allow the user to supply a new password. Resolution: Implemented logic to allow for proper password change against Oracle, Open, and Apache LDAP servers. RTC555328/IT23537 - Invalid realm failure during SSO token validation If a Customer runs SEAS with a custom token manager, and any of their tokens are created without SEAS involved, SEAS is not able to validate the token because it does a check to ensure that the token was generated by SEAS. The error message is: ERROR SingleSignonServiceImpl - AUTH091E SSO token validation failed (Reason: invalid realm). Resolution: Now only validate the token realm if SEAS is using the default simpleSAML token manager. If a custom token manager is in use, the token could have been generated outside of SEAS and would not have a SEAS realm. RTC555414/ - On new Windows install, the passhrase box is prepopulated with a ******** string During a new installation of SEAS on Windows, the panel that asks for a system passphrase has it pre-populated with a value. Resolution: The installer has been changed to not pre-populate the passphrase with a value. RTC555750/IT23303 - Jetty web server version found in server response header Jetty is sending its version in the HTML Header (considered a security risk by some scanners). Resolution: Configured Jetty to not send its server version. RTC557073/IT23495 - Engine fails to start after upgrading from pre-SSP3420 Upgrade installs of SEAS, SSPcm or SSP engine did not replace the log4j property files and in some cases, the SSP CM and/or SSP engine will not come up properly. Resolution: The installer (during an upgrade) will make a copy of the following log4j files and append a date/time stamp to the name before replacing the file with the current version: conf/log4j.properties (SEAS) conf/guilog4j.properties (SEAS) ACTION: If there are customizations to the log4j property files, the Customer must retrofit them after the upgrade. RTC557954/IT23539 - Connections are failing authentication or getting dropped Customer is running with a SEAS Custom exit and when there are many concurrent connections, some are getting dropped or failing. Tried adding the SEAS Java parms -Dhttp.exit.cache.client=true and the SEAS HTTP custom exit property pre-authenticate=true, but they were only partially effective. Resolution: Updated the HttpUserAuthExit to use a Multi-Threaded Http ConnectionManager instead of the SimpleHttpConnectionManager. Also now cache HttpClient objects by default. RTC559372/IT24331 - SEAS certificate and public key authentication fails after migrating to IBM SDSv64 from Tivoli The Customer upgraded from a version of Tivoli LDAP to its follow on product, IBM Security Directory Server (ISDS), version 6. The new product returned the sshPublicKey in binary mode in accordance with RFC 2252, instead of in Base64 encoded form, which SEAS was used to. The change resulted in failed authentications. Resolution: Now handle sshPublicKeys and certificates returned from LDAP in either Binary or Base64 encoded format. Workaround: Consult ISDS product documentation about a setting in the ibmsldap.conf file, ibm-slapdSetenv: IBMLDAP_ATTR_INCLUDE_BINARY=FALSE which returns the binary attributes in the old format for compatibility. RTC560023/IT23857 - SHA2 and SHA3 Cipher Suites not available when selecting "SSLv3, TLSv1, TLSv1.1, or TLSv1.2" When selecting "SSLv3, TLSv1, TLSv1.1, or TLSv1.2" there were no SHA256 or SHA384 cipher suites listed. Resolution: Now default to 18 cipher suites, including at least 5 each of SHA256 and SHA384 for the following protocol selections: "SSLv3, TLSv1, TLSv1.1, or TLSv1.2" (Also known as SSL_TLSv2) "TLSv1, TLSv1.1, or TLSv1.2" (New, called TLS_ONLY) "TLSv1.2" RTC564014/ - Failure authenticating with HttpBasicAuthentication exit When the two exits: SIUserAuthExit_Xapi and HttpUserAuthExit are used together, the SSL connection to the backend fails for one of them. Both exits were referencing the same HttpClient "Protocol" object of "https" and stepping on each other. Resolution: Updated the HttpUserAuthExit to register its "Protocol" object as "myhttps" instead of "https" to avoid the conflict. RTC565040/IT24732 - Excessive error messages for SSPDummyUser pings from SEAS user exit The Customer was seeing excessive error messages and stack traces for the sspDummyUser ping events when using the SEAS custom user exit. Resolution: Added logic to suppress excessive logging when the UserId is SSPDummyUser or the SEAS profile is SSPDummyProfile during SEAS user exit authentication. RTC565487/ - SSP/SEAS code signing certificate expires June 21, 2018 The code signing certificate used for SSP and SEAS expires June 21, 2018. Testing showed that both products will run after that date, but the SEAS Webstart GUI will not. Resolution: Updated the signing cert for SSP and SEAS with one which will expire on March 14, 2021. HIPER: Upgrade SEAS to SEAS2420 iFix 9 or above before June 21, 2018 to ensure that the Webstart GUI will continue working. RTC565836/IT25733 - SEAS authentication timeout in Custom Exit Getting timeouts on some clients connecting to SSP. SSP sends the authentication request to SEAS but it never receives the response back and hence the connection fails. The Customer's Custom Exit was returning a null value in the SEAS audit logs list, and SEAS dropped the response. Resolution: Added logic to handle null values in the audit logs list. Also cleaned up stack trace while debugging the timeout issue. RTC567354/IT24987 - Getting non-fatal stackOverflowExceptions in log during SILENT install The SILENT install for SEAS produces one or more stackOverflowExceptions in the installer log. However, the actual installation is still ok and these errors can be ignored. Resolution: Changed the installer to recognize that the installation is a SILENT install and avoid the action causing the stackOverflowException. RTC567335/ - Upgrade Apache Components HttpClient to 4.5.5 level Need to upgrade the Apache Commons HttpClient 3.1 toolkit which is end of life. Resolution: Updated the Apache Components HttpClient toolkit to 4.5.5. Changed the HttpUserAuthExit and SIUserAuthExit_Xapi exits to use the same. PSIRT10955/10418 (Engine, CM, PS) - Update JRE 1.8 to SR5 FP10 (8.0.5.10) Resolution: Update the JRE 1.8 to bring it up to the Oracle January 2018 level to satisfy the CVEs in PSIRT10418 and PSIRT10955. PSIRT 10418 - October 2017 Java CPU Advisory CVE-2017-10356 (CVSS 6.2) - Product uses JKS or JCEKS keystores PSIRT 10955 - January 2018 Java CPU Advisory CVE-2018-2633 (CVSS 8.3) - Vulnerable to specially crafted LDAP CRL URL. CVE-2018-2603 (CVSS 5.3) - Applications that use SSL/TLS. CVE-2018-2602 (CVSS 4.5) - Affects all Java deployments. CVE-2018-2588 (CVSS 4.3) - LdapLoginModule for LDAP based authentication. CVE-2018-2579 (CVSS 3.7) - Issue with getEncoded() method See http://www.ibm.com/support/docview.wss?uid=swg22017040 for the Security Bulletin. RTC571143 - Restore fix for RTC555750 Fix RTC555750 was dropped in Build 246 when adding another fix. Resolution: Added back the change to not send the Jetty server version in the HTTP headers when the webstart port is accessed. RTC571266/ - Change password fails when LDAP policy retrieval fails During a password change operation via SEAS, if there is a failure during the LDAP password policy retrieval, the user is not allowed to complete the password change. Resolution: Now allow the user to proceed with the password change operation when the LDAP password policy retrieval fails. RTC572431/IT25834 - NullPointerExceptions (NPEs) in log after upgrade Customer getting NPEs in the logs when the SEAS is attempting to retrieve a password policy. The error did not seem to cause a problem with production processing. Resolution: Corrected the NPEs so they don't clutter up the log. Note: The defect RTC572431 is also known internally as MFT-9861. PSIRT11819 - Update JRE 1.8 to SR5 FP17 (8.0.5.17) Resolution: Update the JRE 1.8 to bring it up to the Oracle April 2018 level to satisfy the CVEs in PSIRT11819: CVE-2018-2783 (CVSS 7.4) TLS handshaking flaw implementing 3Shake See http://www.ibm.com/support/docview.wss?uid=ibm10729767 for the Security Bulletin. MFT-9831/ - Certificate CRL revocation check fails after upgrade When the Certificate Revocation List (CRL) is in DER format, it was being converted into string data after upgrading to SEAS 2.4.3.2 iFix 1. This caused the CRL processing to fail. Resolution: The module which retrieves the CRL has been updated to return binary data in all instances. SEAS-405/ - SEAS upgrade to Jetty 9.4.11 Enhancement to upgrade Jetty from the 7.0.1 level to the 9.4.11 level for improved security and functionality. This is also known as PSIRT12571. MFT-10009/IT27016 - SEAS ldapImportTool.sh does not log exception when wrong FQDN/PORT in the properties file. The ldapImportTool, which is used during Connect:Enterprise for UNIX migrations to SI/SFG, was not notifying of a failed connection to the LDAP server. Resolution: Added a check for a failed connection and put out an error message. PSIRT12959, - Update JRE 1.8 to SR5 FP27 (8.0.5.27) for security PSIRT13809 patches. Resolution: Update the JRE 1.8 to bring it up to the Oracle October 2018 level to satisfy the CVEs in PSIRT advisories 12959 and 13809. See http://www.ibm.com/support/docview.wss?uid=ibm10872778 for the Security Bulletin. MFT-10204/IT28758 - Ldap bind failure after upgrade to IBM JRE 8.0.5.27 After upgrading to SEAS 2.4.2.0 iFix 13, the Customer's SEAS instance could not connect successfully to the LDAP server. The LDAP server was using a keycert with a Subject Alternate Name (SAN) extension which did not include the load balancer hostname in front of the LDAP server that SEAS was connecting to. Oracle Java level 1.8.0_181 introduced changes to improve LDAP support by enabling endpoint identification algorithms by default for LDAPS connections; this also results in stricter hostname validation. Resolution: Updated the startSeas.sh script (and equivalent Windows scripts and LAX files) to include a commented -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true parameter which the Customer can uncomment to correct the behavior. Another way to resolve the problem is to update the LDAP server certificate to include all possible hostnames that clients will try to connect to. SEAS-452 - InstallAnywhere 2018 upgrade for Windows 2016 support Resolution: Upgraded to InstallAnywhere 2018, which provides support for Windows 2016 Server. MFT-10243/PSIRT15330 - Update JRE 1.8 to SR5 FP35 (8.0.5.35) for security patches Resolution: Update the JRE 1.8 to bring it up to the Oracle April 2019 level to satisfy the CVEs in PSIRT advisory 15330. See http://www.ibm.com/support/docview.wss?uid=ibm10885939 for the Security Bulletin. ACTION - JRE 1.8 SR5 FP35 (8.0.5.35) introduced a change to disable anon and null cipher suites via the jdk.tls.disabledAlgorithms parameter in the /jre/lib/security/java.security file. If your site uses these suites for testing, update your java.security file to remove the last 2 parms: jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, DESede, \ EC keySize < 224, 3DES_EDE_CBC, anon, NULL ACTION - The java.security file includes a new parm for distrusting CAs: jdk.security.caDistrustPolicies=SYMANTEC_TLS For more information, see the writeup in the java.security file. SEAS-665 - SEAS Sample exit changes provided for moving global variables to local The IBM Sterling External Authentication Server (SEAS) provides sample custom exits which Customers can update and implement to customize the authentication process in their environment. Previously, the sample code in these exits used some global variables instead of local variables, which could cause problems during high concurrency processing. The problems do not occur when using dynamic routing and/or mapped credentials without the custom exits. Resolution: The sample exits, /samples/SampleAuthenticationExit.java and /samples/SampleCertValidationExit.java have been updated to move the necessary global variables into the methods that use them so that they are local and unique per thread. The source is marked with "SEAS-665" in the comments with notes describing the changes that were made to make the code thread-safe. ACTION: Customers who use these exits should either update their own custom source with the changes highlighted in the new sample source, or copy in the new sample source and reapply their custom changes to them. MFT-10352/IT29527 - Exit displays LDAP password in readable format in SEAS log During execution, the SEAS custom exit was dumping some password values coded in the SEAS profile to the SEAS log. Resolution: Commented out the line in the exit which displayed the incoming values from the SEAS profile. Also added code to mask printing the values of properties which contain the strings "password", "pwd" or "passphrase" in them while adding or updating profiles. MFT-10579/PSIRT17288 - Update JRE 1.8 to SR5 FP40 (8.0.5.40) sor security patches. Resolution: Update the JRE 1.8 to bring it up to the Oracle July 2019 level to satisfy the CVEs in PSIRT advisory 17288. See http://www.ibm.com/support/docview.wss?uid=ibm11095832 for the Security Bulletin. SEAS-1177/ - SEAS GUI tabs go away after changing Token Manager value In the SEAS GUI, in the Manage->SystemSettings->SSO Token tab, when the Token Manager field is changed from "SEAS-SAML" to "Custom", several other System Settings tabs go away. The System Settings must be selected again from the Manage screen to show the other tabs. Resolution: Now seamlessly allow changing the Token Manager field without losing other tabs. SEAS-1178 - Custom exit connecting to invalid URL gets nuisance msg When an invalid URL is specified for the custom exit to connect to, it puts out "java.lang.IllegalArgumentException: Socket may not be null". Resolution: Now emit a proper error message: "ERROR HttpUserAuthExit - AUTH220D Communication failure, IBM Secure External Authentication Server could not connect to the server: https://:/myfilegateway" and also show a stacktrace if in debug mode. SEAS-1200/PSIRT21787 - Update JRE 1.8 to SR6 FP5 (8.0.6.5) for security patches. Resolution: Update the JRE 1.8 to bring it up to the Oracle January 2020 level to satisfy the CVEs in PSIRT advisories 20470 and 21787. See http://www.ibm.com/support/docview.wss?uid=ibm?????? for the Security Bulletin. Also tracked internally as SEAS-1199. SEAS-1230/ - CERT008E Exception encountered doing cert validation During regression testing with the new IBM JRE 8.0.6.5, a certificate validation test case failed with the following exception: CERT008E Exception encountered while processing certificate chain: com/ibm/security/x509/CRLDistributionPointsExtension.(Z[B)V The IBM JRE had changed the API for Certificate Revocation List processing which was incompatible with callers compiled under an older JDK. Resolution: Switched to compile SEAS with the IBM 8.0.6.5 JDK and updated the API call to use a different method to get the CRL distribution points from the certificate.