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 Edition | 1.6.2 |
| IBM Watson Machine Learning Community Edition | 1.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
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
Was this topic helpful?
Document Information
Modified date:
26 October 2020
Initial Publish date:
26 October 2020
UID
ibm16353435