KNOWLEDGE BASE

Apache Log4j2 vulnerability (Log4shell) - Tableau Bridge Mitigation Steps


Published: 19 Dec 2021
Last Modified Date: 25 Jan 2022

Issue

Recently disclosed vulnerabilities allow for remote code execution in products that use the Log4j Apache library.
 

Environment

The following product versions or lower have been identified as affected:
  • Tableau Bridge 20214.21.1109.1748, 20213.21.1112.1434, 20212.21.0818.1843, 20211.21.0617.1133, 20204.21.0217.1203, 20203.20.0913.2112, 20202.20.0721.1350, 20201.20.0614.2321, 20194.20.0614.2307, 20193.20.0614.2306, 20192.19.0917.1648, 20191.19.0402.1911, 20183.19.0115.1143

Resolution

Option 1: Update Tableau

For customers with active maintenance, if you have not updated from an impacted version (any product release prior to December 15, 2021), or have updated to the December 15, 2021 product release, please update to one of the newer releases:

The December 15, 2021 Tableau Product releases updated the Log4j2 files to version 2.15. There may be diagnostic or auxiliary components still remaining. We have mitigated these outstanding components with configuration changes that disable the vulnerable JNDI lookup functionality.

The December 19, 2021 Tableau Product release, has integrated the Log4j 2.16 release, which disables JNDI Lookup by default. This action addresses both CVE-2021-44228 & CVE-2021-45046.

By updating to the product release from Dec 19, 2021, you are addressing the security issues currently identified in CVE-2021-44228 & CVE-2021-45046.

    Option 2: Please execute the mitigation steps detailed in Option 2 if:

    • You have updated to the product release from December 15, 2021, and cannot update to a newer release (out of maintenance, outside of a company update window, etc.).
    • You are on an impacted version (any product version released prior to December 15, 2021) and cannot update to a newer release.
    • This is only for supported versions 2020.1 and newer

    Tableau Bridge

    1. Download and install 7zip to c:\7zip
    2. Open an administrative PowerShell Window
    3. Change directory to your Tableau Bridge bin directory. By default C:\Program Files\Tableau\Tableau Bridge\bin

    cd C:\Program Files\Tableau\Tableau Bridge\bin 

    4. Disable ReadOnly on jdbcserver.jar

    Set-ItemProperty jdbcserver.jar -Name IsReadOnly -Value $false 

    5. Disable ReadOnly on oauthservice.jar

    Set-ItemProperty oauthservice.jar -Name IsReadOnly -Value $false

    6. Remove the JndiLookup.class from jdbcserver

    c:\7zip\7z d jdbcserver.jar org/apache/logging/log4j/core/lookup/JndiLookup.class -r 

    7. Remove the JndiLookup.class from oauthservice

    c:\7zip\7z d oauthservice.jar org/apache/logging/log4j/core/lookup/JndiLookup.class -r

      8. Re-enable ReadOnly on jdbcserver.jar

    Set-ItemProperty jdbcserver.jar -Name IsReadOnly -Value $true 

    9. Re-enable ReadOnly on oauthservice.jar

    Set-ItemProperty oauthservice.jar -Name IsReadOnly -Value $true 

    10. Change directory to your Tableau Bridge bin32 directory. By default C:\Program Files\Tableau\Tableau Bridge\bin32

    cd C:\Program Files\Tableau\Tableau Bridge\bin32

    11. Disable ReadOnly on jdbcserver.jar

    Set-ItemProperty jdbcserver.jar -Name IsReadOnly -Value $false

    12. Disable ReadOnly on oauthservice.jar

    Set-ItemProperty oauthservice.jar -Name IsReadOnly -Value $false

    13. Remove the JndiLookup.class from jdbcserver

    c:\7zip\7z d jdbcserver.jar org/apache/logging/log4j/core/lookup/JndiLookup.class -r 

    14. Remove the JndiLookup.class from oauthservice

    c:\7zip\7z d oauthservice.jar org/apache/logging/log4j/core/lookup/JndiLookup.class -r

    15. Re-enable ReadOnly on jdbcserver.jar

    Set-ItemProperty jdbcserver.jar -Name IsReadOnly -Value $true

    16. Re-enable ReadOnly on oauthservice.jar

    Set-ItemProperty oauthservice.jar -Name IsReadOnly -Value $true
     

    Verification Necessary Files Have Been Removed:
    1) Re-run all the above steps in order.
    2) If the outputs of the commands to remove the JndiLookup.class files (steps 6, 7, 13, and 14) do not contain a “Delete data from archive” line item when you repeat this step, the class is no longer present and these mitigation steps can be considered complete. 

    Example:
    When the file is removed for the first time, there will be a “Delete data from archive line item” present:



    The second time the commands are executed, the “Delete data from archive” line item will not be present:

    Did this article resolve the issue?