CVE-2021-37676
Reference binding to nullptr in shape inference
Description
TensorFlow is an end-to-end open source platform for machine learning. In affected versions an attacker can cause undefined behavior via binding a reference to null pointer in `tf.raw_ops.SparseFillEmptyRows`. The shape inference [implementation](https://github.com/tensorflow/tensorflow/blob/460e000de3a83278fb00b61a16d161b1964f15f4/tensorflow/core/ops/sparse_ops.cc#L608-L634) does not validate that the input arguments are not empty tensors. We have patched the issue in GitHub commit 578e634b4f1c1c684d4b4294f9e5281b2133b3ed. The fix will be included in TensorFlow 2.6.0. We will also cherrypick this commit on TensorFlow 2.5.1, TensorFlow 2.4.3, and TensorFlow 2.3.4, as these are also affected and still in supported range.
How to fix CVE-2021-37676
To remediate CVE-2021-37676, upgrade the affected package to a fixed version below.
- —upgrade to 2.3.4 or later
- —upgrade to 2.3.4 or later
- —upgrade to 578e634b4f1c1c684d4b4294f9e5281b2133b3ed or later
- —upgrade to 578e634b4f1c1c684d4b4294f9e5281b2133b3ed or later
- —upgrade to 2.3.4 or later
- —upgrade to 578e634b4f1c1c684d4b4294f9e5281b2133b3ed or later
- —upgrade to 2.3.4 or later
Is CVE-2021-37676 being exploited?
Low — EPSS is 0.0%, meaning exploitation activity has not been observed at scale.
Affected packages (7)
- >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3, >= 2.5.0, < 2.5.1
- from 0, < 2.3.4
- from 0, < 578e634b4f1c1c684d4b4294f9e5281b2133b3ed | >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3
- from 0, < 578e634b4f1c1c684d4b4294f9e5281b2133b3ed | >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3
- from 0, < 2.3.4
- from 0, < 578e634b4f1c1c684d4b4294f9e5281b2133b3ed | >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3
- from 0, < 2.3.4
CVSS scores
| Source | Version | Severity | Vector |
|---|---|---|---|
| osv | CVSS 4.0 | — | CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| osv | CVSS 3.1 | HIGH7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |