Security Bulletin
Summary
The ssl.client.props in WebSphere Application Server uses the weak WAS XOR protection mechanism for keystore and truststore passwords. Security Key Lifecycle Manager v4.0 adds code to encrypt these instead. There are some manual steps required to make use of the new capability in v4.0.
Vulnerability Details
DESCRIPTION: IBM Tivoli Key Lifecycle Manager stores user credentials in plain in clear text which can be read by a local user.
CVSS Base score: 6.3
CVSS Temporal Score: See: https://exchange.xforce.ibmcloud.com/vulnerabilities/184157 for the current score.
CVSS Vector: (CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N)
Affected Products and Versions
Affected Product(s) | Version(s) |
IBM Security Key Lifecycle Manager | 3.0.1 |
IBM Security Key Lifecycle Manager | 3.0 |
IBM Security Key Lifecycle Manager | 4.0 |
Remediation/Fixes
Product | Remediation/First Fix |
IBM Security Key Lifecycle Manager | SKLM v4.0 |
Install Security Key Lifecycle Manager v4.0 and perform the following steps:
1. Stop WebSphere Application Server.
2. Take a backup of the following files:
Windows:
- <WAS_HOME>\bin\stopServer.bat
- <WAS_HOME>\bin\serverStatus.bat
- <WAS_HOME>\bin\wsadmin.bat
Linux:
- <WAS_HOME>/bin/stopServer_org.sh
- <WAS_HOME>/bin/serverStatus.sh
- <WAS_HOME>/bin/wsadmin_org.sh
3. Complete these steps for each backed-up file mentioned in above step based on the operating system:
Windows:
>> %TMPJAVAPROPFILE% echo com.ibm.ffdc.log=%FFDCLOG%
b. On a new line after the located text, add the following lines:
>> %TMPJAVAPROPFILE% echo com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true >> %TMPJAVAPROPFILE% echo com.ibm.wsspi.security.crypto.customPasswordEncryptionClass=com.ibm.tklm.obfuscation.handlers.SKLMWASPasswordEncryptionHandler
c. Save the file and close it.
d. Open the wsadmin.bat in edit mode and locate the following text:
>> %TMPJAVAPROPFILE% echo com.ibm.ws.ffdc.log=%USER_INSTALL_ROOT%/logs/ffdc/
e. On a new line after the located text, add the following lines:
>> %TMPJAVAPROPFILE% echo com.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true
>> %TMPJAVAPROPFILE% echo com.ibm.wsspi.security.crypto.customPasswordEncryptionClass=com.ibm.tklm.obfuscation.handlers.SKLMWASPasswordEncryptionHandler
f. Save the file and close it.
Linux:
a. Open the following file stopServer_org.sh and serverStatus.sh in edit mode and locate the following text:
D_ARGS="-Dws.ext.dirs
b. At the end of above line after the located text, add the following text:
-Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=com.ibm.tklm.obfuscation.handlers.SKLMWASPasswordEncryptionHandler"
Make sure you remove the double quotes in the located text above and add the new text after space.
c. Save the file and close it.
d. Open the following file wsadmin_org.sh in edit mode and locate the following text:
-Dcom.ibm.ffdc.log="${USER_INSTALL_ROOT}/logs/ffdc/" \
e. On a new line after the located text, add the following lines:
-Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionEnabled=true \
-Dcom.ibm.wsspi.security.crypto.customPasswordEncryptionClass=com.ibm.tklm.obfuscation.handlers.SKLMWASPasswordEncryptionHandler \
f. Save the file and close it.
4. Navigate to the bin directory under <WAS_HOME>.
Windows: Open the command prompt and change directory to <WAS_HOME>\bin
directory.
Linux: Open the terminal and change directory to <WAS_HOME>/bin
directory.
5. Run the following command:
Windows:
PropFilePasswordEncoder_ce.bat "<WAS_HOME>\profiles\KLMProfile\properties\ssl.client.props" "com.ibm.ssl.keyStorePassword,com.ibm.ssl.trustStorePassword"
Example:
PropFilePasswordEncoder_ce.bat "c:\Program Files\IBM\WebSphere\AppServer\profiles\KLMProfile\properties\ssl.client.props" "com.ibm.ssl.keyStorePassword,com.ibm.ssl.trustStorePassword"
where, WAS_HOME = C:\Program Files\IBM\WebSphere\AppServer
Linux:
PropFilePasswordEncoder_ce.sh "<WAS_HOME>/profiles/KLMProfile/properties/ssl.client.props" "com.ibm.ssl.keyStorePassword,com.ibm.ssl.trustStorePassword"
Example:
PropFilePasswordEncoder_ce.sh "/opt/IBM/WebSphere/AppServer/profiles/KLMProfile/properties/ssl.client.props" "com.ibm.ssl.keyStorePassword,com.ibm.ssl.trustStorePassword"
where, WAS_HOME = /opt/IBM/WebSphere/AppServer
6. Start WebSphere AppServer Server.
Note - A future release of the product will automatically handle these steps during installation.
Workarounds and Mitigations
Get Notified about Future Security Bulletins
References
Acknowledgement
Jonathan Fitz-Gerald, John Zuccato, Rodney Ryan, Chris Shepherd, Nathan Roane, Kamil Sarbinowski, Vince Dragnea, Troy Fisher and Elaheh Samani from IBM X-Force Ethical Hacking Team.
Change History
06 Nov 2020: Initial Publication
*The CVSS Environment Score is customer environment specific and will ultimately impact the Overall CVSS Score. Customers can evaluate the impact of this vulnerability in their environments by accessing the links in the Reference section of this Security Bulletin.
Disclaimer
Review the IBM security bulletin disclaimer and definitions regarding your responsibilities for assessing potential impact of security vulnerabilities to your environment.
Document Location
Worldwide
Was this topic helpful?
Document Information
Modified date:
25 November 2020
UID
ibm16365305