DSS-G exposure, resolution, and mitigations to log4j vulnerabilities (Log4Shell)

Updated 2022-01-13

DSS-G is exposed to multiple log4j vulnerabilities in a few components of its software stack provided through IBM Spectrum Scale. According to IBM, all releases of IBM Spectrum Scale 5.0.5 or above are affected. Spectrum Scale 5.0.4 and below are not listed as affected; these releases do not ship with log4j v2. Therefore, IBM provides fix packages only for Spectrum Scale 5.0.5 and above.

This page provides remediations and/or mitigations applicable to either GUI server(s) or DSS-G servers from DSS-G2xy or DSS-G100 ECE configurations of a Spectrum Scale storage cluster. The following items are covered:

Summary of the DSS-G exposure

All DSS-G releases with Spectrum Scale 4.2 (DSS-G 2.7 and below) are not affected since Spectrum Scale 4.2 does not include log4j.

All DSS-G releases with Spectrum Scale v5 (DSS-G 2.1 and above) are affected by log4j vulnerabilities:

The following DSS-G components are impacted:

From the known vulnerabilities impacting log4j v2, Spectrum Scale and DSS-G are not affected by CVE-2021-44832.

Fixes and mitigation applicable to DSS-G GUI server(s)

Since DSS-G does not support the GUI with Spectrum Scale 5.1 only, the following fix packages were provided by IBM to address the DSS-G releases with Spectrum Scale 5.0.5:

DSS-G release Spectrum Scale release Fix package on IBM FixCentral
DSS-G 2.8 / 3.2 5.0.5-7 Spectrum_Scale_CVE-2021-45105-5.0.5.7.3-x86_64-Linux-efix.tgz
DSS-G 2.7 / 3.1 5.0.5-1.3 Spectrum_Scale_CVE-2021-45105-5.0.5.1.4-x86_64-Linux-efix.tgz

Note: The fix packages on IBM FixCentral are available for customers without direct IBM entitlement. Downloading them does require the creation of an IBM identifier (IBMID) that anyone can request. These packages are also available from Lenovo Service Connect (Lenovo ESD) and can be found by copying either file name from the above table in the ESD search box.

The fix packages provide updated levels for the gpfs.gui and gpfs.java packages only, both as RPMs and DEBs (for Debian-based distributions). For DSS-G only the RPM updates are used.

In the following sections, the GUI node (designated as GUINODE) is accessed via the xCAT management server (XCAT).

Storage cluster running Spectrum Scale 5.0.4 and below

Since IBM does not provide fix packages for Spectrum Scale 5.0.4 and below, it is mandatory to upgrade the storage cluster including the GUI server(s) to Spectum Scale 5.0.5 before applying a fix package to the GUI server(s). The recommendation is thus to upgrade the whole storage cluster including the GUI server(s).

For the storage servers:

For the GUI server(s):

  1. Copy on the GUI server(s) the Spectrum Scale RPMs provided by either the DSS-G installation package or SUB package above; for instance:

    ssh root@XCAT
    cd /install/dss-g-<VERSION>-<EDITION>-5.0/
    scp -p ./rpm/gpfs*rpm ./gui/rpm/gpfs*rpm GUINODE:~/
    
  2. Shut down the GUI service and Spectrum Scale daemon (provided there is enough quorum), update all Spectrum Scale RPMs, rebuild the GPFS portability layer, and restart the Spectrum Scale daemon:

    ssh root@GUINODE
    systemctl stop gpfsgui
    mmshutdown
    yum update -y ./gpfs*rpm
    mmbuildgpl
    mmstartup
    
  3. Apply the fix package Spectrum_Scale_CVE-2021-45105-5.0.5.7.3-x86_64-Linux-efix.tgz to the GUI server(s) as described in the next section.

Storage cluster running Spectrum Scale 5.0.5

The following procedure allows to update the GUI server that manages the DSS-G storage cluster with Spectrum Scale 5.0.5:

  1. Log in to the xCAT management server and copy on the GUI node the fix package appropriate to the Spectrum Scale level matching that for the storage cluster, and log in to the GUI node:

    ssh root@XCAT
    scp -p Spectrum_Scale_CVE-2021-45105-5.0.5*x86_64-Linux-efix.tgz GUINODE:~/
    ssh root@GUINODE
    
  2. On the GUI node, remove the Kafka resources that have been installed when deploying Spectrum Scale RAID according to the DSS-G Graphical User Interface PDF document:

    yum remove -y gpfs.kafka gpfs.librdkafka
    
  3. Shut down the GUI service, unpack the fix package, and update the gpfs.gui and gpfs.java RPMs:

    systemctl stop gpfsgui
    tar xvzf Spectrum_Scale_CVE-2021-45105-5.0.5*x86_64-Linux-efix.tgz
    yum update -y ./gpfs.gui*rpm ./gpfs.java*rpm
    
  4. Verify the updated level is log4j 2.17.0 (requires the unzip utility):

    yum install -y unzip
    unzip -l /opt/ibm/wlp/usr/servers/gpfsgui/apps/ROOT.war | grep "log4j-" | sed 's,.*/,,'
    
    log4j-api-2.17.0.jar                                                                   
    log4j-core-2.17.0.jar
    
  5. Restart the GUI service:

    systemctl start gpfsgui
    

Storage cluster running Spectrum Scale 5.1

DSS-G does not yet support the GUI with Spectrum Scale 5.1. If the GUI node runs this level however, then the mitigation is to remove the Kafka components and shut down the Spectrum Scale GUI service:

ssh root@XCAT
ssh root@GUINODE
yum remove -y gpfs.kafka gpfs.librdkafka
systemctl stop gpfsgui

Support for the GUI with Spectrum Scale 5.1 is planned for a future release.

Mitigation applicable to DSS-G storage servers

The mitigation consists in removing selected Spectrum Scale RPMs depending on the DSS-G configuration:

Customers having configured FAL on their storage cluster with Spectrum Scale releases prior to 5.1.1 must therefore either disable this capability or upgrade DSS-G to release 2.8a or 3.2a.

For more information about requirements for FAL, refer to the IBM documentation here: https://www.ibm.com/docs/en/spectrum-scale/5.1.1?topic=logging-requirements-limitations-support-file-audit