IBM Support

Security Bulletin: CVE-2020-15190 for Tensorflow in Watson Machine Learning Community Edition

Security Bulletin


Summary

In Tensorflow before versions 1.15.4, 2.0.3, 2.1.2, 2.2.1 and 2.3.1, the `tf.raw_ops.Switch` operation takes as input a tensor and a boolean and outputs two tensors. Depending on the boolean value, one of the tensors is exactly the input tensor whereas the other one should be an empty tensor. However, the eager runtime traverses all tensors in the output. Since only one of the tensors is defined, the other one is `nullptr`, hence we are binding a reference to `nullptr`. This is undefined behavior and reported as an error if compiling with `-fsanitize=null`. In this case, this results in a segmentation fault The issue is patched in commit da8558533d925694483d2c136a9220d6d49d843c, and is released in TensorFlow versions 1.15.4, 2.0.3, 2.1.2, 2.2.1, or 2.3.1.

Vulnerability Details

CVEID:   CVE-2020-15190
DESCRIPTION:   TensorFlow is vulnerable to a denial of service, caused by improper input validation by the tf.raw_ops.Switch operation in eager mode. By sending a specially-crafted request, a remote attacker could exploit this vulnerability to cause a denial of service condition.
CVSS Base score: 5.3
CVSS Temporal Score: See: https://exchange.xforce.ibmcloud.com/vulnerabilities/188919 for the current score.
CVSS Vector: (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L)

Affected Products and Versions

Affected Product(s)Version(s)
IBM Watson Machine Learning Community Edition1.6.2
IBM Watson Machine Learning Community Edition1.7.0

Remediation/Fixes

An ifix has been delivered for WML CE 1.6.2 and 1.7.0 that includes an updated package set. Obtaining the latest packages from the WML CE channel will ensure that you have the ifix installed.

Installing Tensorflow from WML CE 1.6.2 with ifix from scratch:

As noted, the latest package versions available contain the fixes, so new installations or new conda environments will automatically install the patched versions. Conda strict channel priority is recommended when using WML CE. This example is for Python 3.6, for other versions adjust the version listed.

$ cat .condarc
channels:
  - https://public.dhe.ibm.com/ibmdl/export/pub/software/server/ibm-ai/conda
  - defaults
channel_priority: strict
conda create -n my_env python=3.6
conda activate my_env
conda install powerai=1.6.2

or

conda create -n my_env python=3.6

conda activate my_env
conda install tensorflow-gpu=1.15.4

Installing Tensorflow from WML CE 1.7.0 with ifix from scratch:

As noted, the latest package versions available contain the fixes, so new installations or new conda environments will automatically install the patched versions. Conda strict channel priority is recommended when using WML CE. This example is for Python 3.6. For other python versions, adjust the version listed.

$ cat .condarc
channels:
  - https://public.dhe.ibm.com/ibmdl/export/pub/software/server/ibm-ai/conda
  - defaults
channel_priority: strict
conda create -n my_env python=3.6

conda activate my_env
conda install powerai=1.7.0

or

conda create -n my_env python=3.6

conda activate my_env
conda install tensorflow-gpu=2.1.2

Updating an existing WML CE installation:

It is recommended that you keep packages up to date. To update all packages to the latest versions, run:

conda update --all --prune

To update individual packages, use the package name:

conda update tensorflow-gpu

or


conda install tensorflow-gpu=1.15.4

For WML CE 1.7.0:

conda update tensorflow-gpu

or


conda install tensorflow-gpu=2.1.2

Workarounds and Mitigations

None

Get Notified about Future Security Bulletins

References

Off

Acknowledgement

Change History

26 Oct 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

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SGLMYS","label":"IBM PowerAI"},"Component":"","Platform":[{"code":"PF016","label":"Linux"}],"Version":"1.6.2, 1.7.0","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
26 October 2020

Initial Publish date:
26 October 2020

UID

ibm16353435