Vulnerability · Published May 14, 2021 · Assigned by GitHub_M
CVE-2021-29608Heap OOB and null pointer dereference in `RaggedTensorToTensor`
Medium 5.3
In plain English
A medium-severity security flaw in tensorflow from tensorflow. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 14% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
TensorFlow is an end-to-end open source platform for machine learning. Due to lack of validation in `tf.raw_ops.RaggedTensorToTensor`, an attacker can exploit an undefined behavior if input arguments are empty. The implementation(https://github.com/tensorflow/tensorflow/blob/656e7673b14acd7835dc778867f84916c6d1cac2/tensorflow/core/kernels/ragged_tensor_to_tensor_op.cc#L356-L360) only checks that one of the tensors is not empty, but does not check for the other ones. There are multiple `DCHECK` validations to prevent heap OOB, but these are no-op in release builds, hence they don't prevent anything. The fix will be included in TensorFlow 2.5.0. We will also cherrypick these commits on TensorFlow 2.4.2, TensorFlow 2.3.3, TensorFlow 2.2.3 and TensorFlow 2.1.4, as these are also affected and still in supported range.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| PyPI | tensorflow | 2.3.3 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow | 2.4.2 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow | 2.1.4 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-245 |
| PyPI | tensorflow | 2.2.3 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-cpu | 2.4.2 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-cpu | 2.1.4 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-cpu | 2.2.3 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-cpu | 2.3.3 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-cpu | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-536 |
| PyPI | tensorflow-gpu | 2.3.3 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-gpu | 2.4.2 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-gpu | 2.1.4 | GHSA-rgvq-pcvf-hx75 |
| PyPI | tensorflow-gpu | 2.2.0rc0, 2.3.0rc0, 2.3.4, 2.4.3 | PYSEC-2021-734 |
| PyPI | tensorflow-gpu | 2.2.3 | GHSA-rgvq-pcvf-hx75 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| tensorflow | tensorflow | < 2.1.4>= 2.2.0, < 2.2.3>= 2.3.0, < 2.3.3>= 2.4.0, < 2.4.2 |
Weakness: CWE-131 · Vector: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-rgvq-pcvf-hx75 x_refsource_CONFIRM
- https://github.com/tensorflow/tensorflow/commit/b761c9b652af2107cfbc33efd19be0ce41daa33e x_refsource_MISC
- https://github.com/tensorflow/tensorflow/commit/c4d7afb6a5986b04505aca4466ae1951686c80f6 x_refsource_MISC
- https://github.com/tensorflow/tensorflow/commit/f94ef358bb3e91d517446454edff6535bcfe8e4a x_refsource_MISC