Critical
Third-party Component | CVEs | More information |
Apache Log4j | CVE-2021-44228 | https://logging.apache.org/log4j/2.x/security.html |
CVE-2021-45046 | ||
CVE-2021-45105 | ||
CVE-2021-44832 |
Third-party Component | CVEs | More information |
Apache Log4j | CVE-2021-44228 | https://logging.apache.org/log4j/2.x/security.html |
CVE-2021-45046 | ||
CVE-2021-45105 | ||
CVE-2021-44832 |
Product | Affected Versions | Updated Versions | Link to Update |
Dell EMC Power Protect Data Manager | All versions 19.9 and earlier | Dell Technologies recommends impacted customers to upgrade to 19.9 or 19.8 or if upgrade is not possible, apply the temporary workaround detailed in this DSA. *PPDM version 19.9 downloaded from Dell support site before January 19, 2022 shall be upgraded to latest available version as well. |
https://www.dell.com/support/home/en-ca/product-support/product/enterprise-copy-data-management/drivers |
Product | Affected Versions | Updated Versions | Link to Update |
Dell EMC Power Protect Data Manager | All versions 19.9 and earlier | Dell Technologies recommends impacted customers to upgrade to 19.9 or 19.8 or if upgrade is not possible, apply the temporary workaround detailed in this DSA. *PPDM version 19.9 downloaded from Dell support site before January 19, 2022 shall be upgraded to latest available version as well. |
https://www.dell.com/support/home/en-ca/product-support/product/enterprise-copy-data-management/drivers |
Short-Term Mitigation for Power Protect Data Manager:
For all supported Power Protect Data Manager (PPDM) versions, follow the steps below:
Disable all policies, and wait for any running jobs to complete.
ssh <host> -l admin
echo "-Dlog4j2.formatMsgNoLookups=true" >> /etc/elasticsearch/jvm.options
Run the following command:
echo "
#! /bin/sh
/usr/local/brs/puppet/scripts/ecdm_services.sh stop
if [ -d /usr/local/brs/lib/mvnrepo/repository/org/apache/logging/log4j/log4j-core ]; then
zip -q -d /usr/local/brs/lib/mvnrepo/repository/org/apache/logging/log4j/log4j-core/2.*/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
fi
if [ -d /usr/share/elasticsearch/lib ]; then
zip -q -d /usr/share/elasticsearch/lib/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
fi
/usr/local/brs/puppet/scripts/ecdm_services.sh start
" > /tmp/fixlog4j.sh ; chmod u+x /tmp/fixlog4j.sh
Run the following command:
sudo /tmp/fixlog4j.sh
Note: It make take several minutes (up to 5 or longer) for all services to restart.
Short-Term Mitigation for Power Protect Data Manager Search:
Skip this step if you have not deployed Search Node.
SSH to PPDM Core OVA using admin account and change to the root user.
Run the following command to get the search node credentials:
source /opt/emc/vmdirect/unit/vmdirect.env && /opt/emc/vmdirect/bin/infranodemgmt get -secret
SSH to the first Search node with "admin" account using the following command:
ssh admin@<search FQDN or IP>
Run the following command to update the jvm options:
echo "-Dlog4j2.formatMsgNoLookups=true" >> /etc/elasticsearch/jvm.options
Run the following command to create a script to remove the java class that has the exploit:
echo "
if [ -d /usr/share/elasticsearch/lib ]; then
zip -q -d /usr/share/elasticsearch/lib/log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
fi
sudo systemctl restart elasticsearch
" > /tmp/fixlog4j.sh ; chmod u+x /tmp/fixlog4j.sh
Run the following command to run the script that is created through step 5 above:
sudo /tmp/fixlog4j.sh
Repeat steps from #3 to #6 for all the additional Search nodes found in step #2.
Note: It is recommended not to add additional Search Nodes until the next release with the fix is added. If any nodes are added before the fix, these mitigation steps must be added on the new Search Nodes as well.
Short-Term Mitigation for Power Protect Data Manager Cloud DR:
Skip this step if you have not enabled and configured Cloud DR.
For Cloud DR Server Deployed on cloud (AWS, AZURE, AWS GOV, or AZURE GOV)
Log in to the CDRS over SSH. For assistance in accessing CDRS over SSH, contact Dell Support.
#! /bin/sh
cdr_backup()
{
mkdir -p /tmp/cdr_backup
cp /home/cdr/executable /tmp/cdr_backup/executable.bak
cp /home/cdr/resources/restore_service.tar.gz /tmp/cdr_backup/restore_service.tar.gz.bak
cp /home/cdr/lib/cdrs_main.jar /tmp/cdr_backup/cdrs_main.jar.bak
}
update_executable()
{
echo "Updating CDRS executable."
sed -i 's/=CDRS/=CDRS -Dlog4j2.formatMsgNoLookups=true/g' /home/cdr/executable
}
update_restore_service()
{
L_CDR_VER=$1
echo "Updating restore_service.jar."
BASE_PATH=/home/cdr/resources
cd $BASE_PATH
gunzip restore_service.tar.gz
tar -xvf restore_service.tar lib_${L_CDR_VER}/restore_service.jar
if [[ ${L_CDR_VER} =~ 19\.[6-9] ]]; then
zip -q -d lib_${L_CDR_VER}/restore_service.jar shadow/org/apache/logging/log4j/core/lookup/JndiLookup.class
fi
zip -q -d lib_${L_CDR_VER}/restore_service.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
tar --delete -f restore_service.tar lib_${L_CDR_VER}/restore_service.jar
tar -uf restore_service.tar lib_${L_CDR_VER}/restore_service.jar
rm -rf lib_${L_CDR_VER}
gzip restore_service.tar
}
update_cdrs_main()
{
echo "Updating cdrs_main.jar."
LOG4J_JAR_FILE_LOCATION=BOOT-INF/lib/log4j-core-2.13.2.jar
echo "Stopping CDR service."
sudo service cdrd stop
cd /home/cdr/lib/
mkdir -p BOOT-INF/lib
unzip -p cdrs_main.jar $LOG4J_JAR_FILE_LOCATION > $LOG4J_JAR_FILE_LOCATION
zip -q -d $LOG4J_JAR_FILE_LOCATION org/apache/logging/log4j/core/lookup/JndiLookup.class
zip -u -0 -n *.jar cdrs_main.jar $LOG4J_JAR_FILE_LOCATION
rm -rf BOOT-INF
echo "Starting CDR service. This may take a few minutes."
sudo service cdrd start
for i in {1..10}
do
sleep 30
echo "Checking CDR service status..."
RESP_CODE=$(curl -kfsL -o /dev/null -w '%{http_code}' -X GET https://localhost/rest/cdr-version -H "accept: application/json")
if [[ "$RESP_CODE" == 200 ]]; then
echo "CDR service started successfully."
return 0
fi
done
echo "Failed to run CDR service. Please contact Dell Support."
exit 1
}
main()
{
cdr_backup
CDR_VER=$(curl -s -X GET https://localhost/rest/cdr-version -H "accept: application/json" -k)
echo "CDR version is : $CDR_VER"
if [[ $CDR_VER =~ 19\.[6-9] ]]; then
update_executable
update_restore_service $CDR_VER
update_cdrs_main
elif ([[ $CDR_VER =~ 19\.[2-5] ]] || [[ $CDR_VER =~ 19\.1\.[0-9] ]]); then
update_restore_service $CDR_VER
else
echo "This script is applicable only for CDR versions between 19.1 and 19.9."
exit 1
fi
rm -rf /tmp/cdr_backup
}
main
Execute the commands below:
dos2unix /tmp/cdrs_log4jfix.sh
chmod +x /tmp/cdrs_log4jfix.sh
sudo /tmp/cdrs_log4jfix.sh
Revision | Date | Description |
1.0 | 2021-12-13 | Workaround |
1.1 | 2021-12-14 | Workaround , added JndiLookup.class removal from the log4j-core jar files. |
1.2 | 2021-12-22 | Added CVE-2021-45046 |
2.0 | 2022-01-19 | Remediation made available for versions 19.8 and 19.9 and added CVEs being remediated |
2.1 | 2022-02-23 | Minor change to language in the note in Update Versions column. |