CVE-2021-29540
Description
TensorFlow is an end-to-end open source platform for machine learning. An attacker can cause a heap buffer overflow to occur in `Conv2DBackpropFilter`. This is because the implementation(https://github.com/tensorflow/tensorflow/blob/1b0296c3b8dd9bd948f924aa8cd62f87dbb7c3da/tensorflow/core/kernels/conv_grad_filter_ops.cc#L495-L497) computes the size of the filter tensor but does not validate that it matches the number of elements in `filter_sizes`. Later, when reading/writing to this buffer, code uses the value computed here, instead of the number of elements in the tensor. The fix will be included in TensorFlow 2.5.0. We will also cherrypick this commit 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.
Predictions
Heuristic predictions, AS-IS, for prioritization only.
Mitigations
Vendor advisory: debian — https://security-tracker.debian.org/tracker/CVE-2021-29540
OS impact
| OS | Version | Status | Fixed in |
|---|---|---|---|
| arch | fixed | 2.5.0-1 | |
| debian | forky | fixed | 0 |
| debian | sid | fixed | 0 |
Package impact
| Ecosystem | Package | Vulnerable | Fixed |
|---|---|---|---|
| PyPI | tensorflow | <2.1.4 | 2.1.4 |
| PyPI | tensorflow | >=2.2.0,<2.2.3 | 2.2.3 |
| PyPI | tensorflow | >=2.3.0,<2.3.3 | 2.3.3 |
| PyPI | tensorflow | >=2.4.0,<2.4.2 | 2.4.2 |
| PyPI | tensorflow-cpu | <2.1.4 | 2.1.4 |
| PyPI | tensorflow-cpu | >=2.2.0,<2.2.3 | 2.2.3 |
| PyPI | tensorflow-cpu | >=2.3.0,<2.3.3 | 2.3.3 |
| PyPI | tensorflow-cpu | >=2.4.0,<2.4.2 | 2.4.2 |
| PyPI | tensorflow-gpu | <2.1.4 | 2.1.4 |
| PyPI | tensorflow-gpu | >=2.2.0,<2.2.3 | 2.2.3 |
| PyPI | tensorflow-gpu | >=2.3.0,<2.3.3 | 2.3.3 |
| PyPI | tensorflow-gpu | >=2.4.0,<2.4.2 | 2.4.2 |
| PyPI | tensorflow | <c570e2ecfc822941335ad48f6e10df4e21f11c96||>=2.4.0,<2.4.3 | c570e2ecfc822941335ad48f6e10df4e21f11c96 |
| PyPI | tensorflow-cpu | <c570e2ecfc822941335ad48f6e10df4e21f11c96||>=2.4.0,<2.4.3 | c570e2ecfc822941335ad48f6e10df4e21f11c96 |
| PyPI | tensorflow-gpu | <c570e2ecfc822941335ad48f6e10df4e21f11c96||>=2.4.0,<2.4.3 | c570e2ecfc822941335ad48f6e10df4e21f11c96 |
References
- https://github.com/tensorflow/tensorflow/security/advisories/GHSA-xgc3-m89p-vr3x
- https://nvd.nist.gov/vuln/detail/CVE-2021-29540
- https://github.com/tensorflow/tensorflow/commit/c570e2ecfc822941335ad48f6e10df4e21f11c96
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-cpu/PYSEC-2021-468.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow-gpu/PYSEC-2021-666.yaml
- https://github.com/pypa/advisory-database/tree/main/vulns/tensorflow/PYSEC-2021-177.yaml
- https://github.com/tensorflow/tensorflow
- https://security-tracker.debian.org/tracker/CVE-2021-29540
Verify integrity in audit chain (admin only). AS-IS.