CVE-2021-37637
Null pointer dereference in `CompressElement` in TensorFlow
Description
TensorFlow is an end-to-end open source platform for machine learning. It is possible to trigger a null pointer dereference in TensorFlow by passing an invalid input to `tf.raw_ops.CompressElement`. The [implementation](https://github.com/tensorflow/tensorflow/blob/47a06f40411a69c99f381495f490536972152ac0/tensorflow/core/data/compression_utils.cc#L34) was accessing the size of a buffer obtained from the return of a separate function call before validating that said buffer is valid. We have patched the issue in GitHub commit 5dc7f6981fdaf74c8c5be41f393df705841fb7c5. 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-37637
To remediate CVE-2021-37637, 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 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 or later
- —upgrade to 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 or later
- —upgrade to 2.3.4 or later
- —upgrade to 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 or later
- —upgrade to 2.3.4 or later
Is CVE-2021-37637 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, < 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 | >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3
- from 0, < 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 | >= 2.3.0, < 2.3.4, >= 2.4.0, < 2.4.3
- from 0, < 2.3.4
- from 0, < 5dc7f6981fdaf74c8c5be41f393df705841fb7c5 | >= 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:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N |
| osv | CVSS 3.1 | HIGH7.7 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H |