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.
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 Product(s) | Version(s) |
---|---|
IBM Watson Machine Learning Community Edition | 1.6.2 |
IBM Watson Machine Learning Community Edition | 1.7.0 |
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.
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
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
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
None